rss· 投稿· 设为首页· 加入收藏· 繁體版

JSF+Tiles整合

所需要的包

              commons-beanutils.jar

              commons-collections.jar

              commons-digester.jar

              commons-logging.jar

              jsf-api.jar

              jsf-impl.jar

             

              tiles-core -2.1.4-j4.jar

              tiles-jsp-2.1.4.-j4jar

              tiles-servlet-2.1.4-j4.jar

              retrotranslator-runtime-1.2.7.jar

新建工程

1>     Web.xml配置\

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

    xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  <!-- jsf -->

  <context-param>

    <param-name>javax.faces.CONFIG_FILES</param-name>

    <param-value>/WEB-INF/faces-config.xml</param-value>

  </context-param>

  <servlet>

    <servlet-name>Faces Servlet</servlet-name>

    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

    <load-on-startup>0</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>Faces Servlet</servlet-name>

    <url-pattern>*.faces</url-pattern>

  </servlet-mapping>

  <!-- end jsf -->

  <!-- tiles -->

  <!-- 第一种配置 -->

  <!--

  <servlet>

      <servlet-name>TilesServet</servlet-name>

      <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>

      <init-param>

          <param-name>definitions-config</param-name>

          <param-value>/WEB-INF/tiles.xml</param-value>

      </init-param>

      <init-param>

          <param-name>definitions-parser-validate</param-name>

          <param-value>true</param-value>

      </init-param>

      <load-on-startup>2</load-on-startup>

 </servlet>

  -->

<!-- 第二种配置 -->

  <listener>

    <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>

  </listener>

  <!-- end tiles -->

</web-app>

2>     Faces-config.xml配置

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config >

    <navigation-rule>

       <from-view-id>/test.jsp</from-view-id>

    </navigation-rule>

<navigation-rule>

       <from-view-id>/test2.jsp</from-view-id>

    </navigation-rule>

</faces-config>

3>     新建页面header.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsf/core"  prefix="f" %>

<%@taglib uri="http://java.sun.com/jsf/html"  prefix="h" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

  <body>

        <h:outputText value="这是一头部"></h:outputText>

  </body>

</html>

新建body.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsf/core"  prefix="f" %>

<%@taglib uri="http://java.sun.com/jsf/html"  prefix="h" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

  <body>

        <h:outputText value="这是一身体部"></h:outputText>

  </body>

</html>

新建footer.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsf/core"  prefix="f" %>

<%@taglib uri="http://java.sun.com/jsf/html"  prefix="h" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

  <body>

        <h:outputText value="这是一底部"></h:outputText>

  </body>

</html>

新建 layout.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsf/core"  prefix="f" %>

<%@taglib uri="http://java.sun.com/jsf/html"  prefix="h" %>

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

  <body>

           <tiles:insertAttribute name="top"></tiles:insertAttribute>

           &nbsp;&nbsp;<tiles:getAsString name="title"/>

           <br>

           <tiles:insertAttribute name="content"></tiles:insertAttribute>

           <br>

           <tiles:insertAttribute name="bottom"></tiles:insertAttribute>

  </body>

</html>

4>     在web-inf下新建tiles.xml

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE tiles-definitions PUBLIC

       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"

       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>

     <definition name=".tiles.template" template="/jsf/layout.jsp" >

       <put-attribute name="top" />

       <put-attribute name="title" />

       <put-attribute name="content"/>

       <put-attribute name="bottom" />

    </definition>

    <definition name="tiles.test" extends=".tiles.template" >

       <put-attribute name="top" value="/jsf/header.jsp" />

       <put-attribute name="title" value="我是标题" />

       <put-attribute name="content" value="/jsf/body.jsp" />

       <put-attribute name="bottom" value="/jsf/footer.jsp" />

    </definition>    

</tiles-definitions>

5>     新建 两个测试页面

Test.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsf/core"  prefix="f" %>

<%@taglib uri="http://java.sun.com/jsf/html"  prefix="h" %>

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

  <body>

 <f:view>

  <h3>第一种情况可以直截用</h3>

    <tiles:insertDefinitionname="tiles.test"/>    <br/>

    <br/>

    </f:view>

  </body>

</html>

Test2.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@taglib uri="http://java.sun.com/jsf/core"  prefix="f" %>

<%@taglib uri="http://java.sun.com/jsf/html"  prefix="h" %>

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  </head>

  <body>

 <f:view>

    <h3>第二种情况更换头部</h3>

    <tiles:insertDefinition name=".tiles.template">

       <tiles:putAttribute name="top" value="/jsf/header2.jsp"/>

       <tiles:putAttribute name="title" value="更换头部标题" />

       <tiles:putAttribute name="content" value="/jsf/body.jsp" />

       <tiles:putAttribute name="bottom" value="/jsf/footer.jsp" />

    </tiles:insertDefinition>

    <br/>  </f:view>

  </body>

</html>

6>     测试

<a href="test.faces">jsf+tiles 111</a> <br>

<a href="test2.faces">jsf+tiles 22</a> <br>

说:在网上找了很久,都是说只有struts1.1中才有可以和jsf集成的包

但总觉得tiles不可能不支持与jsf集成的

最后到apache官网上下了一个tiles包尝试了一个,最后没有想到还成功了!

但还是觉得没有像struts2.x中调用的简单,可不可以在JSF跳转页面中直截出tiles.test就可以将合并的页面展示出来呢?一直在网上找,结果还是没有找到,希望知道的朋友,说一下.

顶一下
(0)
踩一下
(0)