Spring 3.2重定向无效:获取错误405

时间:2014-08-26 20:00:28

标签: java spring jsp spring-mvc

我有一个welcome.jsp,点击它时有signUp链接调用javascript函数showSignUp调用控制器,控制器应该将它重定向到signUp表单(signup.jsp)。但是没有发生重定向,我收到错误405找不到方法。(控制器调用正在发生我可以打印sysout“在ShowSignUp方法中”)

Welcome.jsp中

<body>
<a href="javascript:signupObj.showSignup ();" >SignUP</a>
</body>

signup.js

var signupObj  = {
        showSignup : function() {
                $.ajax({

                    url: "showSignup",
                    success: function(response) {
                        alert("sucessful");
                    }
                });
        }
    };

控制器类

   @RequestMapping(value="/showSignup")
    public String showSignup(HttpServletRequest httprequest,HttpServletResponse httpResponse) {
        System.out.println("In ShowSignUp method");
        return "redirect:signup";
    }

Signup.jsp

<form method="POST" onsubmit="javascript:signupObj.signup()">
<table>
<tr>
<td>Username : </td>
<td><input  id="username"/></td>
</tr>
<tr>
<td>Password :</td>
<td><input id="password"/></td>

</tr>


<tr>
<td>
<button type="submit">Submit</button>
</td>
</tr>
</table>



</form>

Web.xml中

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

     <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean> 

2 个答案:

答案 0 :(得分:0)

您只能返回视图名称而不需要重定向:

return "Signup";

答案 1 :(得分:0)

  

但重定向没有发生,我得到错误405方法不   结果

您在应用程序中使用ajax调用,我不明白为什么需要将其重定向到另一个页面。 ajax的目的是更新页面的一部分。

    return "redirect:signup";

当您将其重定向到signup时,您是否使用另一个请求映射网址来处理它,

   @RequestMapping(value="/signup",,method=RequestMethod.GET)
    public String showSignup(HttpServletRequest httprequest,HttpServletResponse httpResponse) {
        System.out.println("In ShowSignUp method");
        return "View Name Here";
    }

请记住,重定向

后,您应该遵循P-R-G模式