![](/img/trans.png)
[英]Cannot get '#' symbol in Controller using Spring @RequestParam
[英]Spring MVC controller using @RequestParam with Apache tile 2
我的Spring MVC + Apache tile 2項目具有以下配置。
Tile配置
<definition name="test1" extends="mymain"> <put-attribute name="main"> <definition template="/WEB-INF/views/tiles/template/generictemplate.jsp"> <put-attribute name="headerstyle" value="./resources/css/header.css" type="string" /> <put-attribute name="genericcontent" value="/WEB-INF/views/tiles/test.jsp" /> </definition> </put-attribute> </definition> <definition name="test2" extends="mymain"> <put-attribute name="main"> <definition template="/WEB-INF/views/tiles/template/generictemplate.jsp"> <put-attribute name="headerstyle" value="./resources/css/header.css" type="string" /> <put-attribute name="genericcontent" value="/WEB-INF/views/tiles/test.jsp" /> </definition> </put-attribute> </definition>
控制器
@RequestMapping(value="/test1", method=RequestMethod.GET) public String test1(@RequestParam(value="id", required=true) String id){ return "test1"; } @RequestMapping(value="/test2", method=RequestMethod.GET) public String test2(){ return "test2"; }
視圖generictemplate.jsp
<%@ include file="include.jsp" %> <tiles:importAttribute name="headerstyle" /> <link href="${headerstyle}" rel="stylesheet" type="text/css" /> <div role="main" class="main clearfix"> <section class="generic"> <div class="post"> <tiles:insertAttribute name="genericcontent"/> </div> </section> <!-- end main --> </div>
我的問題是,當我調用test2(不帶參數)時,可以讀取header.css。 但是,當調用test1時,header.css卻顯示404 Not Found 。 我注意到該視圖正在嘗試使用以下路徑訪問CSS
http://localhost:8080/myproject/test1/resources/css/header.css代替
http:// localhost:8080 / myproject / resources / css / header.css當test1正在調用時。 那么,為什么@RequestParam會有所不同呢?
謝謝。
這是因為css是相對於當前URL加載的。 對於test1,您有一個參數,它在test1之后添加一個斜杠。 由於test2沒有參數,因此它相對於父目錄。
您可以嘗試對CSS使用絕對路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.