0

webapps ディレクトリに login.jsp 、forgetpass.jsp ファイルがあり、WEB-INF/jsp フォルダーの下にさらに 2 つの jsp ファイルがあります。

ユーザーがlogin.jspページのForgotPasswordリンクをクリックすると、Springコントローラーの1つによって読み取られるデータを入力すると、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 になることです。

しかし、私の forgetpassword.jsp は /webapps/ ディレクトリにありますが、Spring は WEB-INF/jsp/ フォルダの下でそれをチェックしています。

プレフィックス「/」とサフィックス「.jsp」を持つ別のプロパティを追加できますか? これが不可能な場合は、解決策を提案してください。

4

1 に答える 1

0

ForgetPass.jsp を同じフォルダーに入れないように意図している場合は、常に ModelAndView を返すか、 ViewJstlViewに設定するか、独自のロールを作成することができます。ただし、@funnyfoxに同意する必要がありますが、これらのJSPファイルが同じディレクトリツリーに存在しないようにする要件があるのはばかげているようです。

于 2013-03-07T21:25:30.870 に答える