2013-03-07 60 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文件生存在同一個目錄樹中。