<c:if test ='$ {empty Validated}'> <jsp:forward page =“ / do / Index” /> </c:if>在Spring Boot中无法正确转发

时间:2019-11-19 05:34:19

标签: java spring jsp struts-1

作为从Struts 1.x到Spring Boot迁移的一部分,我一直在努力正确地转发应有的信息。

原始的Struts版本依赖于web.xml,尽管我想将项目转换为一个全新的,完全基于Java的解决方案,但由于时间的限制,它的复杂性使此过程有些艰巨,并且可能不必要。我还把视图部分留在了它们原来的JSP中,即使它花了一些时间。

-我有一个初始的banner.jsp页面,一旦通过验证,该页面就会正确显示。

-单击banner.jsp页面上的“确定”按钮,然后尝试转发到index.jsp页面(以上代码所在的位置)。相应的日志产生(除其他外):

…DispatcherServlet-POST“ / Employees / do / Index”的“ FORWARD”调度,参数= {masked} 没有POST / Employees / do / Index的映射 从状态为404的“ FORWARD”分发中退出

(“ Employees”是各种jsp页面所驻留的uri根)

-在原始的Struts版本中,单击index.jsp并传递了显示的填充template.jsp页。

404似乎只是表示一个映射问题,但是当我尝试过每个uri变体时,我都能想到,我认为问题的根源与jsp forward和Spring不了解其“ do / Index”有关。在Struts中,这似乎是传递参数值的构造。

为直观起见,下面是一些相关代码:

banner.jsp

<form name="bannerForm" method="post" >
            <input type="hidden" name="accepted" value="yes" />
            <input type="submit" value="Ok" />
</form>

index.jsp

<%@ page language="java" contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:if test='${empty Validated}'><jsp:forward page="/do/Index" /></c:if>

有什么想法可能是问题所在,或者存在等效问题或解决方法?

1 个答案:

答案 0 :(得分:0)

您可以尝试在application.properties中进行以下配置

spring.mvc.view.prefix = / WEB-INF / jsp / spring.mvc.view.suffix = .jsp

并且您的WEB-INF应该位于src / main / webapp /文件夹中。完整的路径将类似于src / master / vegcart / src / main / webapp / WEB-INF / jsp /(这是根据maven Project进行的)