我的spring mvc控制器有一个方法:
@RequestMapping(value = "/search", method = RequestMethod.POST)
public ModelAndView search(@RequestParam("cn") String cn) {
//do stuff
return mav;
}
我有一个JSP页面,我想发送字符串cn的值:
<html>
<head><title>Search Entry</title></head>
<body>
<h3>Search entry</h3>
<a href="search"><input type="text" name="cn" value="search">
<button type="submit">Search</button>
</a>
</body>
</html>
我确定jsp有问题,现在状态信息显示:
“不支持请求方法'GET'。”
如果我删除method = RequestMethod.POST,它会说:
“必需字符串参数'cn'不存在;描述:客户端发送的请求在语法上不正确”
答案 0 :(得分:3)
我可以看到你正在使用Spring注释,所以你需要做的是修改你的JSP以获得一个表单而不是像这样的链接:
<html>
<head><title>Search Entry</title></head>
<body>
<h3>Search entry</h3>
<form action="search" method="post">
<input type="text" name="cn" value="search">
<button type="submit">Search</button>
</form>
</body>
</html>
如果你想要一个GET方法工作,你需要修改你的控制器的方法来接受GET并像这样改变你的JSP:
<html>
<head><title>Search Entry</title></head>
<body>
<h3>Search entry</h3>
<a href="search?cn=search">
Search
</a>
</body>
</html>
如果您希望参数不是必需的,可以像这样修改@RequestParam注释:
@RequestParam(value = "cn", required = false) String cn
答案 1 :(得分:0)
您需要在表单标记内定义action="search"
应该可以正常工作
答案 2 :(得分:-2)
更改您的HTML:
<html>
<head><title>Search Entry</title></head>
<body>
<h3>Search entry</h3>
<a href="search"><input type="text" name="cn" value="search" action="search">
<button type="submit">Search</button>
</a>
</body>
</html>
或者点击此链接: