<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 170  文章 - 536  trackbacks - 0
    <2006年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627281234
    567891011

    常用鏈接

    我參與的團(tuán)隊(duì)

    隨筆分類(103)

    搜索

    •  

    積分與排名

    • 積分 - 413988
    • 排名 - 135

    最新評(píng)論

    閱讀排行榜

        Tiles是Struts中提供的一個(gè)優(yōu)秀的模板技術(shù),在JSF中,默認(rèn)并沒(méi)有提供這樣的模板技術(shù),但是,我們可以很容易的集成Struts中提供的Tiles到JSF中,現(xiàn)在,Tiles從Struts中獨(dú)立出來(lái)了,我們也可以在JSF中使用Shale中提供的Standalone Tiles。
        首先以集成Struts中的Tiles為例,簡(jiǎn)單概述一下步驟,最后我們?cè)谶@個(gè)步驟上做一些小小的修改就可以繼續(xù)整合Standalone Tiles了。

        使用Struts中的Tiles,我們必須使用 Struts 1.1 的 jar 包,后面的新版本都是不可以使用的,如果沒(méi)有的話可以上Struts的官方網(wǎng)站http://struts.apache.org下載一個(gè)。

        我們需要在web.xml中做一些配置,加入TilesServlet,通常我們把這段配置放在FacesServlet后面。

        <servlet>
            
    <servlet-name>TilesServet</servlet-name>
            
    <servlet-class>org.apache.struts.Tiles.TilesServlet</servlet-class>
            
    <init-param>
                
    <param-name>definitions-config</param-name>
                
    <param-value>/WEB-INF/config/tiles-config.xml</param-value>
            
    </init-param>
            
    <load-on-startup>2</load-on-startup>
        
    </servlet>


        接下來(lái),我們要在上面這段配置定義的文件“/WEB-INF/config/tiles-config.xml”中配置 Tiles,這里的配置格式是和Struts中的配置格式是完全一樣的,就不再重復(fù)了,大家可以參考官方的參考:http://struts.apache.org/struts-tiles/index.html,在我的MyPSP項(xiàng)目里也使用了Tiles,大家可以參考一下我的配置。

        在使用Tiles標(biāo)簽的頁(yè)面中加入標(biāo)簽聲明就可以使用了:<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>,以MyPSP中一個(gè)簡(jiǎn)單的頁(yè)面作為例子,是不是和在struts中使用Tiles沒(méi)有什么區(qū)別呢?

        <%@ page session="false" contentType="text/html;charset=utf-8"%>
        
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
        
    <%@ taglib uri="http://jakarta.apache.org/tiles" prefix="tiles" %>
        
    <html>
        
    <head>
          
    <title><tiles:getAsString name="title"/></title>
          
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
          
    <link href="../css/site.css" rel="stylesheet"/>
        
    </head>
        
    <body>
        
    <f:view locale="zh">
            
    <tiles:insert attribute="page" flush="false"/>
        
    </f:view>
        
    <body>
        
    </html>


        注意:上面這個(gè)頁(yè)面使用了<f:view>,所以在子頁(yè)面中就不要再加入<f:view>了,否則會(huì)造成沖突無(wú)法正常使用。

        在struts中,我們是可以在struts-config.xml中直接使用Tiles的name來(lái)直接調(diào)用Tiles,但在JSF中使用Tiles就不能這樣,JSF配置文件中的navigation只能定義到所要的頁(yè)面,而不是某個(gè)Tiles,這樣的話我們就需要兩個(gè)不同的jsp文件來(lái)處理這樣的導(dǎo)航。

        借用我的MyPSP項(xiàng)目中的一段代碼作為示例:
        首先我定義了一個(gè)標(biāo)準(zhǔn)的文件頭模板single_layout.jsp,也就是上面給的例子,把這個(gè)作為模板定義在tiles-config.xml中。

        <definition name="mypsp.single" path="/tiles/single_layout.jsp">
            
    <put name="title" value="${title}"/>
            
    <put name="page" value="${page}"/>
        
    </definition>


        接著我們制作了一個(gè)具體的頁(yè)面文件/pages/activity.jsp。

        隨后我們要對(duì)一個(gè)具體的頁(yè)面activity.jsp使用Tiles進(jìn)行拼裝,在tiles-config.xml中進(jìn)行配置。

        <definition name="mypsp.activity" extends="mypsp.single">
            
    <put name="title" type="string" value="Activity"/>
            
    <put name="page" value="../pages/activity.jsp"/>
        
    </definition>


        最后需要一個(gè)jsp文件/web/activity.jsp,在其中我們通過(guò)<tiles:insert definition="mypsp.activity" flush="false"/>來(lái)引用這個(gè)definition。

        我們?cè)谠L問(wèn)的時(shí)候訪問(wèn)/web/activity.jsp這個(gè)頁(yè)面就可以了,還挺簡(jiǎn)單的吧。

        我們?cè)偬嵋幌氯绾问褂肧hale中的Standalone Tiles,我們只需要改兩個(gè)地方就可以了。
        1.web.xml中
            將:<servlet-class>org.apache.struts.Tiles.TilesServlet</servlet-class>
            改成:<servlet-class>org.apache.tiles.servlets.TilesServlet</servlet-class>
          這樣就可以了。

        2.標(biāo)簽聲明
            將:<%@ taglib uri="
    http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
            改成:<%@ taglib uri="
    http://jakarta.apache.org/tiles" prefix="tiles" %>
          這樣就可以了。

    posted on 2006-02-08 17:26 steady 閱讀(2988) 評(píng)論(3)  編輯  收藏 所屬分類: JSF & Myfaces

    FeedBack:
    # re: JSF中使用Struts Tiles和Standalone Tiles 2006-04-12 16:16 gllord
    我按照你說(shuō)的去做,怎么漢字輸入還是顯示亂碼,能幫幫我嗎?  回復(fù)  更多評(píng)論
      
    # re: JSF中使用Struts Tiles和Standalone Tiles 2006-04-12 16:19 steady
    這個(gè)問(wèn)題可以參考我的另外一篇關(guān)于國(guó)際化的文章。  回復(fù)  更多評(píng)論
      
    # re: JSF中使用Struts Tiles和Standalone Tiles[未登錄](méi) 2007-08-29 19:11 JOE
    小弟在讀CORE jsf 2nd第八章卡住了,下的原代碼兒凡是跟tiles有關(guān)的在netbean 6.0 m10的環(huán)境下都運(yùn)行不了(glassfishV2,最新的),說(shuō)什么404錯(cuò)誤,找不到資源還有服務(wù),怎么辦呀,去官網(wǎng)的FAQ看,居然連FAQ都沒(méi)出來(lái),怎么解決?謝謝。book-viewer-tile這個(gè)例子是最開(kāi)始的,tiles-core-SNAPSHOT其提供的唯一的jar文件。源代碼就是從官網(wǎng)下的,真暈呀。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲AV无码之日韩精品| 久久青青草原亚洲av无码app| 国产成人无码精品久久久久免费 | 色se01短视频永久免费| 亚洲午夜无码久久| 亚洲中文无韩国r级电影| 巨波霸乳在线永久免费视频| 亚洲av无码专区亚洲av不卡| 亚洲avav天堂av在线不卡| 成人免费无码视频在线网站| 国产黄在线播放免费观看| 亚洲国产日韩在线人成下载| 亚洲成av人片不卡无码久久| 99久久免费观看| 特级毛片在线大全免费播放| 亚洲欧洲日产国码二区首页 | 久久精品国产亚洲Aⅴ香蕉| 69影院毛片免费观看视频在线| 国产尤物在线视精品在亚洲| 亚洲人成在线播放网站岛国| 国产片免费在线观看| 亚洲视频在线免费观看| 日韩亚洲人成在线综合| 亚洲理论精品午夜电影| 亚洲国产成人爱av在线播放| 99视频全部免费精品全部四虎| 97国免费在线视频| 欧美激情综合亚洲一二区| 亚洲成在人天堂一区二区| 国产午夜免费秋霞影院| 精品国产免费人成电影在线观看 | 亚洲午夜在线一区| 中文字幕亚洲日韩无线码| 日韩在线免费看网站| jjizz全部免费看片| a级男女仿爱免费视频| 深夜久久AAAAA级毛片免费看| 亚洲三级在线播放| 亚洲三级电影网站| 亚洲精品自产拍在线观看| yy6080亚洲一级理论|