Sealyu

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(14)

          隨筆分類

          隨筆檔案

          友情鏈接

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          當事務成功之后(調用 persist()update()remove() 成功后),Home對象會發出一個 org.jboss.seam.afterTransactionSuccess 事件。 通過監聽這一事件,我們可以在底層實體改變后,刷新查詢。 如果我們只需要在特定的實體保存、修改或刪除后刷新特定查詢,我們可以監視 org.jboss.seam.afterTransactionSuccess.<name> 事件(<name> 是實體的名字)。

          當一個操作成功時,Home對象可以自動地顯示Faces信息,我們可以再一次通過配置來定制信息。

          <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>

          或者擴展:

          @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中(在默認情況下,這個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

          這樣方便進行國際化,從表現層的角度考慮也保持了代碼和配置的整潔。

          最后一步是使用 <s:validateAll><s:decorate> 向頁面中添加驗證功能,我會把這個留給你們自己去實現。

          posted on 2009-10-23 10:40 seal 閱讀(274) 評論(0)  編輯  收藏 所屬分類: Seam
          主站蜘蛛池模板: 即墨市| 垣曲县| 中西区| 和林格尔县| 新沂市| 洱源县| 南平市| 锦屏县| 施秉县| 屏边| 时尚| 平遥县| 太谷县| 泗阳县| 缙云县| 昌图县| 贺兰县| 钦州市| 常熟市| 民乐县| 富宁县| 富阳市| 昌宁县| 玉屏| 新龙县| 巴彦淖尔市| 惠安县| 霍州市| 洛隆县| 海伦市| 淅川县| 吉林省| 定安县| 手机| 昌邑市| 亚东县| 南和县| 安吉县| 黎川县| 南阳市| 密山市|