我有一个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>
答案 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模式