1,
Jboss Seam Tools 可以生成实体xxx,一个xxxHome, 一个xxxList。但是在使用xxxList出了问题。
按照JSF生命周期,更新模型(bean中的属性)后再执行Action,然后渲染。渲染的时候可能调用模型中的值。我从表单提交一个搜索条件,然后更新页面上的一个表。但实际上的执行顺序是先执行getResultList(),这时候模型(搜索条件)未更新,(当然得不到所要的记录)然后更新模型,然后才是其他Action。
想不出所以然。getResultList()是xxxList的父类EntityQuery的一个方法。是不是有关系呢?
后来查了源代码,爷爷类Query里面有一个这样的方法:
@Create
public void validate()
{
if ( getEjbql()==null )
{
throw new IllegalStateException("ejbql is null");
}
}
原来有Create annotation.也就是说初始化后会调用validate(),它调用getEjbql(),而这时候刚刚初始化,模型还没有更新。
最后用ActionListener设定为自定义的getMyResultList()方法,调用getResultList().运行正常。
今天使用xxxList又出了问题。我在他里面定义了一个List<E>加上@DataModel使他暴露为一个Conversation组件,想在页面上引用,而且想得到DataModelSelection或是提取行元素作为参数。xxxList原来没有Scope定义,因为是JavaBean默认为Event. 要想跨request或者页面只有将它的Scope设为Conversation. 改了以后发现这个DataModel不能刷新。因为我是通过override getEjbql(),然后调用父类的getResultList()来刷新记录集。检查父类的源码发现它采用了缓冲机制,如果ejbql的参数没有变化他不会提交数据库查询。而我没有采用参数化查询。在Hibernate Log里也确实只发现只有一条查询语句。看来别人的东西是不能随便拿来用的的。起码要仔细看看源码和文档。
后来在ejbql采用EL
引用
User user = em.createQuery("from User where username=#{user.username}")
.getSingleResult();
is equivalent to:
User user = em.createQuery("from User where username=:username")
.setParameter("username", user.getUsername())
.getSingleResult();
Of course, you should never, ever write it like this:
User user = em.createQuery("from User where username=" + user.getUsername()) //BAD!
.getSingleResult();
(It is inefficient and vulnerable to SQL injection attacks.)
2,
浏览器的不同表现
在 IE 里,加上 a4j support的SelectOneRadio控件需要点击两次才有onchange事件,Firefox正常。后来设置 RequestDelay 为 0 才解决。
css表现也不一样,这方面 IE 要人性化一点。
3,
JBoss Seam 里ejb、 javabean 都可以提供 action 方法,有时在ejb session bean里加一个方法,却忘了在接口里面也加上去,出现 method not found 错误。
分享到:
相关推荐
JBoss Seam JBoss Seam JBoss Seam
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。
JBOSS SEAM组件中文手册 Seam_2.0_Reference_zh_CN
Jboss Seam中文参考手册,通过大量的实例详细介绍seam的使用
[TipTec Development] JSF & Facelets & JBoss Seam 核心技术 (英文版) [TipTec Development] Essential JSF, Facelets & JBoss Seam (E-Book) ☆ 出版信息:☆ [作者信息] Kent Ka Iok Tong [出版机构] TipTec ...
jbossseam eclipse安装 例子学习.doc jfreechart flex
jboss seam 参考,英文, seam包内的参考文档
jboss seam 和jsf2 开发好书
java jboss seam jboss-seam-selectitems
个人收集整理的最全面seam文档 包括seam_reference(中、英) richfaces jsf a4j 以及seam一些其他主要功能
jboss -seam 绝对有用教程,
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了...
JBoss Seam的简介 入门开发的领路杰作
[Apress] JSF 2 APIs & JBoss Seam 基础教程 (英文版) [Apress] Beginning JSF 2 APIs and JBoss Seam (E-Book) ☆ 出版信息:☆ [作者信息] Kent Ka Iok Tong [出版机构] Apress [出版日期] 2009年05月25日 ...
JBOSS_SEAM配置
CJ电子书系列(1) 网上一篇介绍JBoss Seam的好文深入浅出《JBoss Seam》,有人把它翻译成中文,我把它制作成PDF,希望更多的人能够读到更好的java 技术文章。
一份非常好的seam简介,简明扼要,有开发的例子介绍。
三本最受欢迎的SEAM教材 一本中文 和两本英文 seam in action
深入浅出JBoss Seam 作者 Michael Yuan 译者 包亮 本文节选了Michael Yuan和Thomas Heute所著的即将出版JBoss Seam: Power and Flexibility Beyond Java EE 5.0第一章和第二章,内容有所删减。
才翻译完成的2.1的。。。。。 jboss seam 2.1用户手册中文版