当前位置: 首页 > 知识库问答 >
问题:

Spring MVC控制器使用@RequestParam和Apache tile 2

田翰林
2023-03-14

我的Spring MVC+Apache Tile2项目有以下配置。

<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";
}
<%@ 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的404Not found。我注意到视图试图访问路径为

http://localhost:8080/myproject/test1/resources/css/header.css
http://localhost:8080/myproject/resources/css/header.css

谢谢。

共有1个答案

呼延鹏云
2023-03-14

这是因为css是相对于当前URL加载的。对于test1,您有一个在test1后面添加斜杠的param。其中as test2没有param,所以它是相对于父目录的。

您可以尝试为CSS使用绝对路径。

 类似资料:
  • 我想验证请求参数。我已经浏览了很多博客并回答了问题,我也做了同样的事情。在控制器类上添加了@Validated。 控制器中的方法: 控制器建议 配置: 完成所有这些之后,现在我得到一个404错误。"状态":404,"错误":"未找到","消息":"没有可用的消息"

  • 我一直在尝试使用: 使用此链接: 但我有一个错误: 当我换成: 是工作。我能做些什么来和日期一起工作? 谢啦

  • 我有过 我通过这种方式传递profileJson: 但是我的配置文件Json对象具有所有空字段。我应该怎么做才能让Spring解析我的json?

  • 是否有一种方法可以在@RequestParams上进行spring控制器单元测试以进行javax验证。 我在控制器中有一个get方法,它用@size验证请求参数的大小。 有没有办法模拟jUnit测试大小验证器?我想验证大小为 样本测试: @RunWith(MockitoJUnitRunner.class)公共类MyControllerTest{ } 我也试过SpringRunner,但似乎还是失败

  • 我正在尝试从Spring Boot应用程序的表单中获取用户输入。我需要做什么? 我实现了一个登录控制器使用注释来请求数据进行验证,但得到参数不存在的结果。 Login.html 我希望用户的电子邮件和密码才能登录,但得到 2019-07-27 20:30:54.393 WARN 2900---[nio-8080-exec-2].w.s.m.s.DefaultHandlerExceptionReso