2012-11-20 88 views
0

我的Spring MVC + Apache瓦片2項目具有以下配置。使用@RequestParam和Apache瓦片的Spring MVC控制器2

的瓷磚配置

 
<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被調用時,我得到404 Not Found for header.css。我注意到當test1正在調用時,視圖試圖訪問路徑爲

http://localhost:8080/myproject/test1/resources/css/header.css
而不是
http://localhost:8080/myproject/resources/css/header.css
的css。 那麼爲什麼@RequestParam使這種差異?

謝謝。

回答

0

這是因爲相對於當前URL加載了CSS。 對於test1,你有一個參數,在test1之後添加一個斜槓。作爲test2沒有參數,所以它相對於父目錄。

你可以嘗試使用絕對路徑的CSS。

+0

是的,它確實在test1後添加了斜線。謝謝! – user200340