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

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Spring MVC集成Struts Tiles使用方法

系統(tǒng) 1708 0

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

首先使用:<tiles:getAsString name="title"/>打印tiles配置文件中定義的字符串屬性title
然后是分別加載header,content,footer三個(gè)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 " , "" , "" );
????}



????
}
??

當(dāng)我們運(yùn)行上面這個(gè)控制器時(shí)候,系統(tǒng)會(huì)自動(dòng)去尋找courseDetail.jsp這個(gè)文件,但我們還沒有定義這個(gè)文件,所以,我們要這樣寫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對(duì)應(yīng)的頁面->
??<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 >

?

運(yùn)行/title.mvc (mvc是我自定義的擴(kuò)展名)我們可以看到如下結(jié)果:

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

?

如果我們需要在每一個(gè)頁面的header部分顯示一些我們從數(shù)據(jù)庫里讀取的數(shù)值,我們可以在不同的控制器中加入訪問數(shù)據(jù)庫的代碼,但這樣顯得很啰唆,因?yàn)閔eader部門在每個(gè)頁面都是公用的,也就是說不同的頁面只有content部分不同,這樣,我們就會(huì)有很多冗余代碼,未解決這個(gè)問題,我們可以使用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中存放簡單數(shù)據(jù)
?????????context.putAttribute( " name " ,?stu.getName());
?????????context.putAttribute(
" sex " ,?stu.getSex());
????????????????????????????????????????????
// tiles?context中存放對(duì)象
?????????context.putAttribute( " student " ,?stu);
?????????
// request中存放數(shù)據(jù)
?????????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使用方法


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 佛教| 怀化市| 平昌县| 隆昌县| 兰考县| 平顶山市| 都兰县| 汝阳县| 射阳县| 漯河市| 永州市| 华坪县| 渝中区| 汉阴县| 黄平县| 宝坻区| 板桥市| 绵阳市| 广州市| 淮安市| 西城区| 宝兴县| 突泉县| 丰台区| 铜鼓县| 开原市| 琼海市| 迁西县| 独山县| 杨浦区| 错那县| 定州市| 漾濞| 怀远县| 永顺县| 阳江市| 尼玛县| 周至县| 上杭县| 安达市| 茂名市|