JSF教程 一入门

  JSF教程
一入门
1)JSF 官方网站的 下载区  下载参考实作
http://java.sun.com/j2ee/javaserverfaces/download.html
JSF需要的lib
* jsf-impl.jar
    * jsf-api.jar
    * commons-digester.jar
    * commons-collections.jar
    * commons-beanutils.jar
    * jstl.jar
    * standard.jar
还需要
jstl.jar 与 standard.jar 档案

 

1.JSF官网java.sun.com/j2ee/javaserverfaces
sourceforge.net/projects/myfaces 开放源码版的实现。
参考
http://java.sun.com/webservices/downloads/webservicespack.html
示例应用和代码清单 www.brainysoftware.com (要复制包)

2.jsf-api.jar 包含 Faces servlet和javax.faces包里的相关类。
  jfs-ri.jar JSF的参考实现。
  jstl.jar 和standard.jar使用jsp标准标记库里的标记需要这两个文件。
  commons-beanutils.jar用来定义和访问JavaBeans组件属性的工具类。
  commons-digester.jar此库文件包含Apache Common Digester类。
  commons-logging.jar 一个通用的,灵活的日志工具。

 

 

 


2)映射web.xml
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>  还有/faces
    </servlet-mapping>
请求是/index.faces的话, 则实际上会唤起/index.jsp 网页
3)faces-config.xml
 <faces-config>
    <navigation-rule>
        <from-view-id>/pages/index.jsp</from-view-id>
        <navigation-case>
            <from-outcome>login</from-outcome>
            <to-view-id>/pages/welcome.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
         您还可以在<navigation-case>中加入<from-action>, 进一步规范窗体结果必须根据哪一个动作方法

(action method)
    <managed-bean>
        <managed-bean-name>user</managed-bean-name>
         <managed-bean-class>
             onlyfun.caterpillar.UserBean
         </managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
 </faces-config>
 在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指定的页面,并且指定了

<navigation-case>中的<from-outcome>为 login 时,则会将请求导向至<to-view-id>所指定的页面。
  <from-view-id>如果没有设定,表示来源网页不作限制,您也可以使用 * 显式的在定义档中表明,例如: 

<from-view-id>/*或者*</from-view-id>

4)错误讯息属性
 <h:outputText value="#{user.errMessage}"/>
 errMessage = "名称或密码错误";

 JSF Expression Language  #{}
5) param
   param是 JSF EL预设的隐含对象变量,它代表 request 所有参数的集合,实际是一
个 java.util.Map型态对象,JSF 所提供的隐含对象,大致上对应于 JSP 隐含物件 ,不过
JSF 隐含对象移除了 pageScope与 pageContext,而增加了 facesContext与 view,
它们分别对应于 javax.faces.context.FacesContext与
javax.faces.component.UIViewRoot。
  对于 Map 型态对象,我们可以使用 '.' 运算子指定 key值来取出对应的 value,也可
以使用 [ 与 ] 来指定,例如:
 <f:view>
    <b> 您好, <h:outputText value="#{param['name']}"/> </b>
 </f:view>
6)map,list
 <f:view>
    <h:outputText value="#{someBean.someMap[user.name]}"/> 
 </f:view>
如果变量是 List 型态或数组的话,则可以在 [] 中指定索引,例如
 <f:view>
     <h:outputText value="#{someBean.someList[0]}"/> 
 </f:view>
7)国际化讯息
messages.properties默认的
<f:loadBundle basename="messages" var="msgs"/>
   <f:view>可以设定 locale属性,直接指定所要使用的语系,例如:
如果设定为以下的话,就会使用
messages_en.properties:
<f:view locale="en">
 <f:loadBundle basename="messages" var="msgs"/>
您也可以在 faces-config.xml中设定语系,例如:
<faces-config>
    <application>
        <local-config>
            <default-locale>en</default-locale>  默认语言
            <supported-locale>zh_TW</supported-locale>  支持的语言
        </local-config>
  </application>
 .....
 </faces-config>
  在<local-config>一定有一个<default-locale>, 而<supported-locale>可以有好
几个,这告诉 JSF 您的应用程序支持哪些语系。


    当然,如果您可以提供一个选项让使用者选择自己的语系会是更好的方式,例如根据
user 这个 Bean的 locale属性来决定页面语系:
<f:view locale="#{user.locale}">
 <f:loadBundle basename="messages" var="msgs"/>
    在页面中设定一个窗体,可以让使用者选择语系,例如设定单选钮:
<h:selectOneRadio value="#{user.locale}">
     <f:selectItem itemValue="zh_TW" 
                   itemLabel="#{msgs.zh_TWText}"/>
     <f:selectItem itemValue="en" 
                   itemLabel="#{msgs.enText}"/>
 </h:selectOneRadio>

 

 

*<f:selectItem itemValue=""    itemLabel=""/>

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值