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

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Spring MVC集成Struts Tiles使用方法

系統 1549 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條評論
主站蜘蛛池模板: 麻豆69 | 播放一级录像片 | 亚洲欧美自拍一区 | 久久噜 | 九九热国产精品视频 | 亚洲一区二区三区一品精 | 免费精品美女久久久久久久久 | 四虎国产精品永久地址51 | 九九热视频精品在线观看 | 色插视频| 98在线视频噜噜噜国产 | 久久精品国产一区二区三区日韩 | 国内精品一区二区 | 亚洲小视频在线观看 | 亚洲欧美一区二区久久 | 色成网| 91一区二区在线观看精品 | 久久国产精品99精品国产 | 久久亚洲国产欧洲精品一 | 狠狠涩 | 天天拍天天干 | 黄色大全网站 | 日本中文在线视频 | 视频在线观看入口一二三2021 | 亚洲精品96欧美一区二区 | 99视频免费观看 | 奇米777狠狠 | 四虎影视成人永久在线播放 | 亚洲精品美女久久777777 | 91网红福利精品区一区二 | 91九色精品国产免费 | 97影院理伦片 | 2级毛片| 精品久久久久久久久久久久久久久 | 国产精品久久久久久久久久久不卡 | 欧美影院一区 | 麻豆亚洲精品一区二区 | 五月婷中文| 成人性一级视频在线观看 | 最新国产三级久久 | 日韩精品一区二区三区免费观看 |