我在webapps目录下有login.jsp,forgotpass.jsp文件,我在WEB-INF / jsp文件夹下还有2个jsp文件。
现在,当用户点击login.jsp页面上的ForgotPassword链接时,当用户输入一些数据(由Spring Controller之一读取)时,他被重定向到forgotpassword.jsp,spring控制器设置一个属性并返回相同的jsp页面。
我的remote-servlet.xml文件具有以下配置。
...
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
ForgotPasswordController.java
@RequestMapping(value = "/pass", method =RequestMethod.POST)
public String recoverPassword(@RequestParam String email, ModelMap model){
List<String> emails = usersDao.getEmails();
...
if (!emails.contains(email)) {
model.addAttribute("failMessage", "Password Recovery Failed ! Invalid loginId or EmailId");
}else{
String validEmail = email;
model.addAttribute("successMessage", "A New Password is Sent to your emailId "+ "xxx"+email.substring(email.indexOf('@')-3,email.length()));
}
return "forgotpassword";
}
}
问题是 在为配置属性添加前缀和后缀之后,返回路径将为/myapp-Path/WEB-INF/jsp/forgotpassword.jsp。
但是我的forgotpassword.jsp位于/ webapps /目录下,但是Spring正在WEB-INF / jsp /文件夹下检查它。
我们可以添加另一个前缀为“/”且后缀为“.jsp”的属性吗?如果无法做到这一点,请向我建议任何解决方案。
答案 0 :(得分:0)
如果您打算不在同一个文件夹中使用forgetPass.jsp,则可以随时返回ModelAndView,将View设置为JstlView,或自行滚动对于这个问题。但是,我必须同意@funnyfox,你有一些要求阻止这些JSP文件存在于同一目录树中似乎很愚蠢。