Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評(píng)論 :: 0 Trackbacks

          當(dāng)事務(wù)成功之后(調(diào)用 persist()update()remove() 成功后),Home對(duì)象會(huì)發(fā)出一個(gè) org.jboss.seam.afterTransactionSuccess 事件。 通過(guò)監(jiān)聽(tīng)這一事件,我們可以在底層實(shí)體改變后,刷新查詢(xún)。 如果我們只需要在特定的實(shí)體保存、修改或刪除后刷新特定查詢(xún),我們可以監(jiān)視 org.jboss.seam.afterTransactionSuccess.<name> 事件(<name> 是實(shí)體的名字)。

          當(dāng)一個(gè)操作成功時(shí),Home對(duì)象可以自動(dòng)地顯示Faces信息,我們可以再一次通過(guò)配置來(lái)定制信息。

          <factory name="person"
          value="#{personHome.instance}"/>

          <framework:entity-home name="personHome"
          entity-class="eg.Person"
          new-instance="#{newPerson}">
          <framework:created-message>New person #{person.firstName} #{person.lastName} created</framework:created-message>
          <framework:deleted-message>Person #{person.firstName} #{person.lastName} deleted</framework:deleted-message>
          <framework:updated-message>Person #{person.firstName} #{person.lastName} updated</framework:updated-message>
          </framework:entity-home>

          <component name="newPerson"
          class="eg.Person">
          <property name="nationality">#{country}</property>
          </component>

          或者擴(kuò)展:

          @Name("personHome")
          public class PersonHome extends EntityHome<Person> {

          @In Country country;

          @Factory("person")
          public Person initPerson() { return getInstance(); }

          protected Person createInstance() {
          return new Person(country);
          }

          protected String getCreatedMessage() { return "New person #{person.firstName} #{person.lastName} created"; }
          protected String getUpdatedMessage() { return "Person #{person.firstName} #{person.lastName} updated"; }
          protected String getDeletedMessage() { return "Person #{person.firstName} #{person.lastName} deleted"; }

          }

          但是指定信息最好的方法是把信息置于Seam所知的resource bundle中(在默認(rèn)情況下,這個(gè)bundle叫做 messages )。

          Person_created=New person #{person.firstName} #{person.lastName} created
          Person_deleted=Person #{person.firstName} #{person.lastName} deleted
          Person_updated=Person #{person.firstName} #{person.lastName} updated

          這樣方便進(jìn)行國(guó)際化,從表現(xiàn)層的角度考慮也保持了代碼和配置的整潔。

          最后一步是使用 <s:validateAll><s:decorate> 向頁(yè)面中添加驗(yàn)證功能,我會(huì)把這個(gè)留給你們自己去實(shí)現(xiàn)。

          posted on 2009-10-23 10:40 seal 閱讀(270) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Seam
          主站蜘蛛池模板: 郁南县| 淮南市| 镇平县| 措美县| 庄浪县| 嘉善县| 林州市| 宜城市| 苍山县| 和平区| 遂宁市| 双柏县| 阿拉善左旗| 裕民县| 盘锦市| 家居| 平塘县| 许昌市| 信阳市| 夏邑县| 玉龙| 沙洋县| 调兵山市| 错那县| 松溪县| 左贡县| 大兴区| 罗田县| 阿图什市| 海盐县| 宜州市| 贵德县| 沽源县| 宿州市| 嫩江县| 志丹县| 澄城县| 白河县| 吉隆县| 叙永县| 屏东县|