我的 Spring MVC + Apache tile 2 项目有以下配置。
瓷砖配置
<definition name="test1" extends="mymain"> <put-attribute name="main"> <定义模板="/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" /> </定义> </put-属性> </定义> <definition name="test2" extends="mymain"> <put-attribute name="main"> <定义模板="/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" /> </定义> </put-属性> </定义>
控制器
@RequestMapping(value="/test1", method=RequestMethod.GET) 公共字符串 test1(@RequestParam(value="id", required=true) 字符串 id){ 返回“测试1”; } @RequestMapping(value="/test2", method=RequestMethod.GET) 公共字符串 test2(){ 返回“测试2”; }
视图 generictemplate.jsp
<%@ 包含文件="include.jsp" %> <tiles:importAttribute name="headerstyle" /> <link href="${headerstyle}" rel="stylesheet" type="text/css" /> <div role="main" class="main clearfix"> <section class="通用"> <div class="post"> <tiles:insertAttribute name="genericcontent"/> </div> </节> <!-- 结束主要 --> </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 会产生这种影响呢?
谢谢。