0

我在 webapps 目录中有 login.jsp , forgotpass.jsp 文件,在 WEB-INF/jsp 文件夹下还有 2 个 jsp 文件。

现在,当用户在 login.jsp 页面上单击 ForgotPassword 链接时,当用户输入一些数据时,他被重定向到 forgotpassword.jsp,这些数据由 Spring 控制器之一读取,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>

忘记密码控制器.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”的属性吗?如果这是不可能的,请建议我任何解决方案。

4

1 回答 1

0

如果您不想将 forgotPass.jsp 放在同一个文件夹中,您总是可以返回一个ModelAndView,将View设置为JstlView,或者为此滚动您自己的。但是,我必须同意@funnyfox 的观点,您有一些要求阻止这些 JSP 文件位于同一目录树中,这似乎很愚蠢。

于 2013-03-07T21:25:30.870 回答