欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一次和jsf的接触 JSFSeamrichfaceswicketSwing 

程序员文章站 2022-07-15 16:34:47
...

同事看了richfaces,觉得很漂亮,决定来一次学习研究.要搞jsf,当然要收集资料啦.开动,加上两年前接触过一会jsf,一下子就收集了下面如此之多的链接:一次和jsf的接触
            
    
    
        JSFSeamrichfaceswicketSwing 

jsf

richfaces
ajax4jsf
RichFaces Developer Guide
seam
MyFaces -
JSF Training Course Materials

stand1.1doc

jsf1.1tag
JavaServer Faces 1_1_01API
RenderKit1.1

stand1.2Doc

jsf-ri-1.2tld
JavaServer Faces API 1.2MR1
Standard HTML RenderKit

The J2EE(TM) 1.4 Tutorial
javaserverfaces: JavaServer Faces Community

question

SF: DataTable and CommandLink

china-resource

jsf opendoc
AgileJava - Discuz! Archiver
1.开始啦:发现JSF Training Course Materials的资料不错.一个个下载下来学习.基本第二个section就把jsf的特性展示出来了.
2.自己做个crud怎样呢?好吧,动手:
  首先需求:
      商店,买菜的商店
      1.商品列表,翻页
      2.编辑商品
3.咕咚咕咚的就把商品列表做出来了,

期间遇到一些不适应症状:
   翻页:以前的操作是客户端指定了页码,然后传给服务器;现在变成用一个隐藏变量放置当前页码,然后Page提供了first,next,prev,last四个方法,作为command action被调用,而Page()回调注入的PageAble接口来填充数据.
   一个最郁闷的问题是:h:datatable里面包括CommandLink的时候,CommandLink会失效.发现要使用SessionBean才能正常,或者这个调用方法总是返回相同的数据.就像The J2EE(TM) 1.4 Tutorial   的bookstore跟seam的booking例子那样(做例子也不模拟得实际点,搞得我花了半天才找到问题).

咕咚咕咚的又跑去下了The J2EE(TM) 1.4 Tutorial的教程的boostore来看,意犹未尽之下,又去下载seam的booking例子来看.运行之后,发现好神气.譬如seam在一个表格的一行用 <s:link action="#{hotelBooking.selectHotel(hot)}" value="View Hotel" id="viewHotel">,
@Begin
   public void selectHotel(Hotel selectedHotel)
   {
      hotel = em.merge(selectedHotel);
   }
 调试状态下看看,神气啊, selectedHotel居然就是用来显示那一行的hotel对象.一模一样.发现原来是state to session在起作用,.
但是想想觉得这个开销不小.要把列表的数据都丢session里.当然咯,环境允许的话这样用来肯定爽.

4.</s:link>用<s:link action="#{hotelBooking.selectHotel(hot)}" value="View Hotel" id="viewHotel">tomcat,sun提供的参考实现需要指定
  <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
   </listener>
5.参考实现跟myfaces使用request bean的运行结果有些不同.貌似myfaces支持save state to client,这样有些特性默认就有了.

最后得到的结论如果不用session bean,真不知道怎么用好jsf.这个问题如果能很好解决,感觉挺好的.?
   
      

</s:link>