分享

JSF in Action 笔记(第三章)

 WindySky 2007-07-05

第三章 Warming up: getting around JSF

一、使用JSF要用到的东西:

Sun  的 RI ,Apache的MyFaces,后者提供了更多的特性。决定用后者。

下载了MyFaces的Examples回来,运行了一遍,看到有很多有趣的控件,包括:下拉菜单,树型控件,所见即所得编辑器等等,更令人激动的是,它们在IE和Firefox里面运行的效果是一样的。

IDE习惯了使用Eclipse,但很少有插件能够很好地支持所见即所得的JSF。MyEclipse可以提供JSF支持,而且最近的一个Milestone版本提供了所见即所得的编辑功能,但是有一个很大的问题,中文字符在源代码里会显示为UNICODE代码,查看起来比较麻烦,论坛上已经有人提出了这个问题,希望4.0最终版出来后能解决这个问题。

在寻找专门针对Myfaces的IDE时,结果有点令人失望。MyEclipse只支持最基本的JSF Components,找到一个日本的开源站点,sourceforge.jp,里面有一个专门针对Myfaces的IDE,FacesIDE,但刚刚才开始开发,现在是0.1.7版,不知道什么时候才成熟呢。


二、配置文件

1、web.xml配置文件需要设置的东西

2、JSF配置文件
日常应用程序开发,UI扩展开发,高级开发。
Faces Console可以图形化配置。
根标签:<faces-config>
其他标签均为可选:
日常应用程序配置及高级扩展注册:<application> <managed-bean> <referenced-bean> <navigation-rule>
用户界面扩展注册:<component> <render-kit> <validator> <converter>
高级特性配置:<lifecycle> <factory>

默认会寻找 WEB-INF/faces-config.xml。也可以通过javax.faces.CONFIG_FILES上下文参数(在web.xml里面)来指定配置文件。JSF还会在JAR文件(或者其他资源路径)里面寻找META-INF/faces-config.xml文件。

3、JSP的include
<jsp:include> <c:import>是动态包含,也就是在运行时把被包含文件的运行结果包含进来。使用动态包含时,需要做两样东西:
(1)被包含的文件必须在JSF标签<f:subview>里面,这个标签可以在被包含的文件,也可以放在<jsp:include>语句的前后。
(2)被包含文件中的所有template text和非JSF标签都应该括在JSF标签<f:verbatim>里面。

静态包含是在翻译阶段把被包含文件加到包含文件里面,再编译成可运行的class,所以被包含文件的更新可能没有影响到包含文件。JSF使用静态包含没有任何限制。

4、JSF与其他JSP标签
无论什么时候,把一个JSF标签嵌套在非JSF标签里面时,必须为JSF标签设置component identifier。
不可以在<c:forEach>等对标签内容进行反复处理的标签内加入JSF标签,要通过HtmlDataTable组件或者其他组件来遍历数据集或集合。
可以通过组件的rendered属性来控制组件的显示与否,即使控件不能显示出来,也能记住它的值;如果用<c:if>来控制的话,不显示的时候值也丢失了。

三、Managed Beans
1、在配置文件里可以指定Managed Beans的名称、类、初始化属性等,但真正创建它是在第一次使用它的时候。

2、生命周期长的对象不能引用生命周期短的对象

3、不能循环引用对象

四、Navigation Rules
1、有两种方法设定Navigation Case: <from-action>和<from-outcome>

2、可以用*来代表符合要求的<from-view-id>,如果有多个符合要求,则选择最长的那个


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多