2013-03-07 80 views
0

我在webapps目录中有login.jsp,忘记了pass.jsp文件,我在WEB-INF/jsp文件夹下有2个更多的jsp文件。我的Spring配置文件之一的前缀属性

现在,当用户单击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

您可以将jsp移动到/ myapp-Path/WEB-INF/jsp /这是最简单的方法。 – 2013-03-07 17:05:30

+0

是的,但有没有办法来定义2路径? – 2013-03-07 18:25:49

+0

不,没有。方法setPrefix(http://bit.ly/10cJ4Fi)的文档说:“设置构建URL时预先查看名称的前缀”。这是做到这一点的唯一方法,所以你可以只有一个前缀。 – 2013-03-07 18:36:04

回答

0

如果你是如此的意图在同一文件夹不具有forgotPass.jsp的,你总是可以返回一个ModelAndView,设置ViewJstlView,或滚动您自己对这一问题。然而,我必须同意@funnyfox,似乎很愚蠢的是,你有一些要求阻止这些JSP文件生存在同一个目录树中。

相关问题