对在eclipse+myeclipse中使用java server face(JFS)的办法:
根据myeclipse的简介操作jsf的创建向导,创建一个jsf项目。具体内容如下:
1.j2ee的web project工程的创建
2.添加jsf的包到工程(Adding JSF Capabilities to a Web Project)
创建相关的包和配置文件.
3.添加jfs页面(jsp中一种特殊的格式的文件)
注:页面中一般都有引入两个包的taglib如下:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> //主要是页面处理的taglib
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> //主要是页面显示的封装的taglib,例如从包中.properties中提取关键的可配置的显示。
4.创建相关的包和类.通常是用于处理的class.(也就是javabean)
5.根据需要些需要修改或再写javabean和jsf。
7.要修改配置文件:例如.properties文件,face-config.xml文件等
6.同一般的部署方法部署到服务器上。即可运行。(对服务器的版本的要求比较高,weblogic8.1对这些taglib有警告)
解释一下:
1.对于一些可配置的页面内容,可以放到相关的包下。然后在jfs文件中
<f:loadBundle basename="com.Login.MessageBundle" var="bundle"/>
其中com.Login.MessageBundle表示对com.Login包下的MessageBundle.properties文件内容的名值对的引用
bundle在jfs文件中是变量,拥有.properties文件中的名作为属性,名对应的值即为属性值。他可以被其他地方引用。
2.通过faces-config.xml文件使javabean和jf之间进行通信。类似于struts-config.
<faces-config>
<navigation-rule>
<from-view-id>/Login.jsp</from-view-id><---首先显示的页面,他的处理结果来自于javaBean,但是后继的页面的显示通过返回的<from-outcome>对应的标示,并用<to-view-id>来指明。-->
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/LoginSuccessfully.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/Login.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean><--对使用的bean的定义-->
<description>Bean used to handle all User-based operations.</description>
<managed-bean-name>UserBean</managed-bean-name>
<managed-bean-class>com.Login.Use.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope> <--表示适用会话期间-->
</managed-bean>
</faces-config>
3.对于标签的属性的细节可以参看相关的.tld文件。
4.页面可以直接使用,设置,请求javaBean中的方法和属性。
例如: <h:commandButton id="submit" action="#{UserBean.loginUser}" //直接请求对应的javaBean的方法
value="#{bundle.login_button_label}"/>
5.jsf文件本身是一个jsp文件(以jsp为后缀名),而在请求时则要用对应的.faces文件来请求。
总结:JSF只是不仅可分离处理业务和表示,还分离页面的内容。这样不仅实现处理和页面的分离,还实现了页面内容的分离。