JBoss4 应用服务器Web开发人员参考手册(10):使用JSF

从4.0.3版本开始, JBoss应用服务器内置对JavaServer Faces的支持. JSF实现使用的是Apache MyFaces; 但是MyFaces的扩展并没有一起包含在JBoss的发布中. 在JBoss中部署JSF应用时,并不需要在WEB-INF/lib目录中额外放置许多JSF实现的JAR文件.

为了使用JSF, 必须在web.xml文件的servlet mapping中声明Faces Servlet :

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

为了初始化JSF环境,还需要在web.xml文件中增加MyFaces监听器: 

<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

通过设置几个额外的context参数,还可以为特定的Web应用控制JavaServer Faces的配置:

<context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>
        /WEB-INF/examples-config.xml
    </param-value>
    <description>
        Comma separated list of URIs of (additional) faces config files.
        (e.g. /WEB-INF/my-config.xml)
        See JSF 1.0 PRD2, 10.3.2
    </description>
</context-param>
<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
    <description>
        State saving method: "client" or "server" (= default)
        See JSF Specification 2.5.2
    </description>
</context-param>
<context-param>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>
    <description>
        This parameter tells MyFaces if javascript code should be allowed in the
        rendered HTML output.
        If javascript is allowed, command_link anchors will have javascript code
        that submits the corresponding form.
        If javascript is not allowed, the state saving info and nested parameters
        will be added as url parameters.
        Default: "true"
    </description>
</context-param> 
<context-param>
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
    <param-value>false</param-value>
    <description>
        This parameter tells MyFaces if javascript code should be allowed in the
        rendered HTML output.
        If javascript is allowed, command_link anchors will have javascript code
        that submits the corresponding form.
        If javascript is not allowed, the state saving info and nested parameters
        will be added as url parameters.
        Default: "false"  
        Setting this param to true should be combined with STATE_SAVING_METHOD "server" for
        best results.
        This is an EXPERIMENTAL feature. You also have to enable the detector 
        filter/filter mapping below to get JavaScript detection working.
    </description>
</context-param>
<context-param>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>
    <description>
        If true, rendered HTML code will be formatted, so that it is "human readable".
        i.e. additional line separators and whitespace will be written, that do not
        influence the HTML code.
        Default: "true"
    </description>
</context-param>
<context-param>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>
    <description>
        If true, a javascript function will be rendered that is able to restore the
        former vertical scroll on every request. Convenient feature if you have pages
        with long lists and you do not want the browser page to always jump to the top
        if you trigger a link or button action that stays on the same page.
        Default: "false"
    </description>
</context-param>

如果需要使用其它的JSF实现, 例如JSF的参考实现, 而不是JBoss自带的MyFaces实现, 简单地删除

jbossweb-tomcat55.sar/jsf-lib

目录,然后再把JSF实现的JAR文件放置在应用的如下目录即可

WEB-INF/lib



你可能感兴趣的:(JavaScript,应用服务器,Web,servlet,JSF)