Sealyu

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

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  618 随笔 :: 87 文章 :: 225 评论 :: 0 Trackbacks

当事务成功之后(调用 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 阅读(257) 评论(0)  编辑  收藏 所属分类: Seam

只有注册用户登录后才能发表评论。


网站导航: