打印tiles配置文件中定義的字符串屬性title然后是分別加載header,content,footer三個jsp頁面,共同組成mainTemplate.jsp<%...@tagliburi="http://jakarta.apache.org/struts/tags-tiles"prefix="t" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Spring MVC集成Struts Tiles使用方法

系統 1614 0

首先,我們定義一個總體的tiles視圖?/tiles/mainTemplate.jsp

首先使用:<tiles:getAsString name="title"/>打印tiles配置文件中定義的字符串屬性title
然后是分別加載header,content,footer三個jsp頁面,共同組成mainTemplate.jsp

<% ... @?taglib?uri = " http://jakarta.apache.org/struts/tags-tiles " ?prefix = " tiles " ? %>
< html >
< head >

< title >< tiles:getAsString? name ="title" /></ title >
</ head >
< body >
the?title?is:
< tiles:getAsString? name ="title" />< br >
< tiles:insert? name ="header" />< br >
< tiles:insert? name ="content" />< br >
< tiles:insert? name ="footer" />< br >

??
</ body >
</ html >

??header.content.footer頁面如下:


< html >
< head >
</ head >
< body >
this?is?from?header
</ body >
</ html >


< html >
< head >
</ head >
< body >
this?is?from?content
</ body >
</ html >


< html >
< head >
</ head >
< body >
this?is?from?footer
</ body >
</ html >


Spring MVC 控制類:

?

package ?Action;

import ?java.util.ArrayList;
import ?java.util.List;

import ?javax.servlet.http.HttpServletRequest;
import ?javax.servlet.http.HttpServletResponse;

import ?model.Student;

import ?org.springframework.validation.BindException;
import ?org.springframework.web.servlet.ModelAndView;
import ?org.springframework.web.servlet.mvc.AbstractCommandController;

public ? class ?TilesHomeController? extends ?AbstractCommandController? ... {


????
protected ?ModelAndView?handle(HttpServletRequest?arg0,?HttpServletResponse?arg1,?Object?arg2,?BindException?arg3)? throws ?Exception? ... {
????????
return ? null ;
????}


????
protected ?ModelAndView?handleRequestInternal(HttpServletRequest?arg0,?HttpServletResponse?arg1)? throws ?Exception? ... {

????????
?????????
return ? new ?ModelAndView( " courseDetail " , "" , "" );
????}



????
}
??

當我們運行上面這個控制器時候,系統會自動去尋找courseDetail.jsp這個文件,但我們還沒有定義這個文件,所以,我們要這樣寫tiles-def.xml
<! DOCTYPE?tiles-definitions?PUBLIC
???????"-//Apache?Software?Foundation//DTD?Tiles?Configuration//EN"
???????"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"
>


< tiles-definitions >
??
< definition? name ="template" ?page ="/tiles/mainTemplate.jsp" >
????
< put? name ="title" ?value ="default?title" />
????
< put? name ="header" ?value ="=" /tiles/header.jsp" />
????
< put? name ="content" ?value ="/tiles/content.jsp" />
????
< put? name ="footer" ?value ="/tiles/footer.jsp" />
??
</ definition >
??
<!-- -以courseDetail命名的配置,覆蓋了模板中的title和content對應的頁面->
??<definition?name="courseDetail"?extends="template">
????<put?name="title"?value="courseDetail?title"/>
????<put?name="content"?value="/tiles/courseContent.jsp"/>
??</definition>

</tiles-definitions>

/title/courseContent.jsp
<% ... @?taglib?uri = " http://jakarta.apache.org/struts/tags-tiles " ?prefix = " tiles " ? %>
< html >
< head >


</ head >
< body >
this?is?courseContent
??
</ body >
</ html >


spring配置文件:

?

<? xml?version="1.0"?encoding="UTF-8" ?>
<! DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd"? >
< beans >

< bean? id ="simpleUrlMapping" ?class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
?
< property? name ="mappings" >
???
< props >
???????
< prop? key ="/tiles.mvc" > TilesController </ prop >
???
</ props >
?
</ property >
</ bean >


< bean? id ="TilesController" ?class ="Action.TilesHomeController" >
</ bean >

<!-- ?tiles頁面解析器 --> ?
< bean? id ="viewResolver" ?class ="org.springframework.web.servlet.view.InternalResourceViewResolver" >
??
< property? name ="viewClass" >
????
< value > org.springframework.web.servlet.view.tiles.TilesView </ value >
??
</ property >
</ bean >


<!-- ?tiles配置器 -->
< bean? id ="tilesConfigurer" ?class ="org.springframework.web.servlet.view.tiles.TilesConfigurer" >
?
< property? name ="definitions" >
???
< list >
?????
< value > /WEB-INF/train-def.xml </ value >
???
</ list >
?
</ property >
</ bean > ?
</ beans >

?

運行/title.mvc (mvc是我自定義的擴展名)我們可以看到如下結果:

courseDetail title
this is from header
this is courseDetail
this is from footer

?

如果我們需要在每一個頁面的header部分顯示一些我們從數據庫里讀取的數值,我們可以在不同的控制器中加入訪問數據庫的代碼,但這樣顯得很啰唆,因為header部門在每個頁面都是公用的,也就是說不同的頁面只有content部分不同,這樣,我們就會有很多冗余代碼,未解決這個問題,我們可以使用spring為我們提供的ComponentControllerSupport

?

package ?Action;

import ?javax.servlet.http.HttpServletRequest;
import ?javax.servlet.http.HttpServletResponse;

import ?model.Student;

import ?org.apache.struts.tiles.ComponentContext;
import ?org.springframework.web.servlet.view.tiles.ComponentControllerSupport;

public ? class ?HeaderTilesController? extends ?ComponentControllerSupport? ... {


????
protected ? void ?doPerform(ComponentContext?context,?HttpServletRequest?request,
????????????HttpServletResponse?response)?
throws ?Exception? ... {
?????????Student?stu
= new ?Student();
?????????stu.setName(
" gaoxiang " );
?????????stu.setSex(
" male " );
?????????
// tiles?context中存放簡單數據
?????????context.putAttribute( " name " ,?stu.getName());
?????????context.putAttribute(
" sex " ,?stu.getSex());
????????????????????????????????????????????
// tiles?context中存放對象
?????????context.putAttribute( " student " ,?stu);
?????????
// request中存放數據
?????????request.setAttribute( " requestname " ,?stu.getName() + " -request " );
?????????request.setAttribute(
" requestsex " ,?stu.getSex() + " -request " );
????}


}


改寫train-def.xml

<! DOCTYPE?tiles-definitions?PUBLIC
???????"-//Apache?Software?Foundation//DTD?Tiles?Configuration//EN"
???????"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"
>


< tiles-definitions >
??
< definition? name ="template" ?page ="/tiles/mainTemplate.jsp" >
????
< put? name ="title" ?value ="default?title" />
????
< put? name ="header" ?value =".header" />
????
< put? name ="content" ?value ="/tiles/content.jsp" />
????
< put? name ="footer" ?value ="/tiles/footer.jsp" />
??
</ definition >
??
??
< definition? name ="courseDetail" ?extends ="template" >
????
< put? name ="title" ?value ="courseDetail?title" />
????
< put? name ="content" ?value ="/tiles/courseContent.jsp" />
??
</ definition >
??
??
< definition? name =".header" ?page ="/tiles/header.jsp" ?controllerClass ="Action.HeaderTilesController" >
??
</ definition >
</ tiles-definitions >

?

改header.jsp


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

Spring MVC集成Struts Tiles使用方法


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99久久精品国产自免费 | 我爱看片(永久免费) | 欧美色欧美亚洲另类二区精品 | 精品国产91亚洲一区二区三区www | 国产污网站在线观看 | 久久精品亚洲精品国产欧美kt∨ | 日本高清www无色夜在 | pornoⅹxxxxhd麻豆 | 久久毛片网站 | 日本一区二区高清视频 | 国产一区二区三区不卡在线观看 | 日韩小视频 | 欧美人妖在线 | 国产在线一区二区三区 | 久操伊人 | 日本加勒比视频在线观看 | 久久久国产精品免费视频 | 久久久一区二区精品 | 日韩成人免费视频播放 | 精品一区二区视频 | 91亚洲成人| 在线精品亚洲欧美日韩国产 | 亚洲已满18点击进入在线观看 | 成人福利视频网站 | 性xxxx视频播放免费 | 91视频区| 丝袜美腿精品一区二区三 | 在线观看欧美三级 | 中文字幕日韩欧美一区二区三区 | 久久黄色大片 | 99在线视频观看 | 欧美视频在线一区 | 四虎1515hh精品影库 | 久久一本 | www.天天操 | 国产二区三区 | 国产免费资源 | 欧美日韩国产一区二区三区 | 午夜视频网| 91精品一区二区 | 精品无码国产一区二区日本 |