我有这个控制器:
@Controller
public class HelloWorldController {
@RequestMapping("/hello.html")
public ModelAndView helloWorld() {
String message = "Hello World, Spring 3.0!";
return new ModelAndView("hello", "message", message);
}
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String viewLogin(Map<String, Object> model) {
User user = new User();
model.put("userForm", user);
return "LoginForm";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String doLogin(@Valid @ModelAttribute("userForm") User userForm,
BindingResult result, Map<String, Object> model) {
if (result.hasErrors()) {
return "login";
}
return "LoginSuccess";
}
}我有两个方法,对于相同的url /login有不同的http方法,所以当单击第一个url 'localhost:8080/project_name/login‘时,第一个带有GET的方法将被处理,并将我重定向到/LoginForm
因此,根据我的理解,第二个方法处理程序将不会被执行,因为对/login的请求总是使用GET.
如果我的理解是错误的,请向我解释如何执行第二种方法,谢谢。
发布于 2018-05-19 21:29:05
我认为这就是你感到困惑的地方。之所以是GET,是因为默认情况下浏览器会调用GET。如果您想调用第二个方法,您可能需要编写一个定制的表单/ JSP页面,或者签出postman来将HTTP方法设置为POST。
您还可以从命令行使用curl:
$ curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data如果您希望能够从浏览器本身发出POST调用,请查看以下浏览器附加组件:firefox、chrome
如果您不喜欢浏览器中的扩展,请使用以下文本创建一个书签并使用它:
path javascript:var%20my_params=prompt("Enter%20your%20parameters","var1=aaaa&var2=bbbbb");%20var%20Target_LINK=prompt("Enter%20destination",path);%20Function%20POST(path,%20params)%20{%20%20%20var%20xForm=%20document.createElement("form");%20%20%20xForm.setAttribute("method",%20"post");%20%20%20xForm.setAttribute("action",%20path);%20Function%20PATH(
javascript:var%20my_params=prompt(“Enter%20your%20parameters”,“var1=aaaa&var2=bbbbb”);%20var%20Target_LINK=prompt(“Enter%20destination”,%20location.href);%20function%20post(path,path%20Path);%20%20%20%20%20%20%20%20%20xForm.appendChild(hiddenField);%20%20%20%20%20}%20%20%20}%20%20%20document.body.appendChild(xForm);%20%20xForm.submit();%20}%20%20%20parsed_params={};%20my_params.split("&").forEach(function(item)%20{var%20s%20=%20item.split("="),%20k=s,%20v=s1;
发布于 2018-05-19 21:36:06
发布于 2018-05-21 20:24:23
浏览器默认选择GET方法。因此,如果你尝试一下postman,你就会看到不同之处。您可以选择GET / POST。对于实时,他们也会从UI中提到具体的GET请求/ Post请求,所以不用担心。
你可以用邮递员找个更好的办法
https://stackoverflow.com/questions/50425667
复制相似问题