我很欣赏这个问题在这个网站上被多次询问过,但是没有一个解决方案似乎适合我的问题(尽管如果我弄错的话请指出一个)
我试图在.jsp上提交一个表单,然后填充数据库中的值。我的jsp文件如下:
<html lang="en">
<head>
<title>New Request</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1> New Request </h1>
<form method="POST" action="addRequest**?${_csrf.parameterName}=${_csrf.token}**">
<p>
Version: <select name = "versionSelect">
<option value="none">None</option>
<option value="A1">Component A::0.0.1</option>
<option value="A2">Component A::0.0.2</option>
</select>
</p>
<p>
Problem: <input type ="text" name="problem">
</p>
<p>
Solution: <input type ="text" name="solution">
</p>
<p>
Request type:
<input type ="radio" name="faultType" value="fault" checked> Fault
<input type ="radio" name="faultType" value="new"> New Feature
</p>
<input type = "submit" value="Create">
</form>
<br>
<form action="/developer">
<input type = "submit" value="Go back to home page">
</form>
</body>
</html>
我的控制器文件如下:
@RequestMapping(value="/addRequest", method=RequestMethod.POST)
public ModelAndView addRequest(Model model, @RequestParam(value ="version",required=true) String versionSelect,
@RequestParam(value ="problem", required = true) String problem,
@RequestParam(value ="solution", required = true) String solution,
@RequestParam(value ="faultType", required = true) String faultType) {
Request request = new Request();
request.setVersion(versionSelect);
request.setProblem(problem);
request.setSolution(solution);
request.setFaultType(faultType);
return new ModelAndView("developer");
}
但是,在提交表单时,我会收到警告&#34;请求方法&#39; POST&#39;不支持&#34;并且不存储数据。我看过围绕这个的其他帖子,答案似乎都涉及一个XML文件,我认为这意味着他们正在使用Spring和Maven。但是,我正在使用Spring和Gradle一直努力寻找合适的答案。
到目前为止,我已添加以下内容:
**?${_csrf.parameterName}=${_csrf.token}**
但它并没有解决我的问题。
任何帮助或指导都将不胜感激!
答案 0 :(得分:1)
删除&#34; **&#34;围绕您添加的代码:
<form method="POST" action="addRequest?${_csrf.parameterName}=${_csrf.token}">