我有一个@Controller
带有以下@RequestMapping
注释的
@RequestMapping(value={"somevalue"},
method=RequestMethod.GET,
produces=MediaType.TEXT_HTML_VALUE)
public String findOneById(@PathVariable String id, Model model){
model.addAttribute(findOneById(id));
return "some view";
}
观察它使用@PathVariable
,基于 URI,它可以在 周围工作/persons/{id}
,例如:
- /人/100
- /人/200
它检索一个预期的人。
该@RequestMapping
方法在以下情况下可以正常工作:
- 我将 URL/URI 放在同一个 Web 浏览器地址栏中 (.../persons/200)
- 当我生成项目报告时,包括每个项目的链接以查看详细信息(.../persons/200)。
我正在尝试创建一个搜索表单,如下所示:
<body>
<spring:url var="findOne" value="/persons/" >
</spring:url>
<form action="${findOne}" method="get">
<table>
<tr>
<td><label for="id"><spring:message code="persona.id.label"/></label></td>
<td><input name="id" id="id" value=""/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="search"/></td>
</tr>
</table>
</form>
</body>
我的问题是,当我按下提交时,表单总是生成/创建 URL 以进行格式搜索/persons?id=100
。我知道这是正常的,也是意料之中的。
但只是好奇,当然如果可能的话:
问题:
生成 URI 模式的新配置是什么,/persons/100
而不是/persons?id=100
当我按下提交按钮时?
我想避免创建一个使用(it for )的新@RequestMapping
方法。它补充了使用(it for ) 版本的方法。@RequestParam
?id=100
@RequesMapping
@PathVariable
/100
谢谢