我只想使用requestparameter发送我的下拉列表的值。就我而言
Kidscalcula_web/start.htm?klasid=myValueHere
我知道这样做的方法,但这样做听起来非常不合理。如果我感到无聊,我可能会写一些jQuery来做一个帖子并发送参数为例。现在真的听起来像是一个非常糟糕的想法,手动创建我的请求字符串,因为Spring负责这一点。那么我怎样才能创建一个简单的表单,只将我的dropdownvalue发送给我的控制器?
只是我无法在任何地方找到一些如此微不足道的东西,你们中的一个人可能很快就会帮助我。我想控制器会像以下一样微不足道:
@RequestMapping(value = "post")
public String postIndex(@RequestParam("klasid") String klasid, HttpServletResponse response,
HttpServletRequest request) {
}
但我真的找不到任何关于如何让JSP向我发送该值的示例。这可能与<form>
taglib?
答案 0 :(得分:12)
<form>
taglib通常与表单支持命令对象一起使用,而不是使用单独的@RequestParam
参数绑定到控制器。这就是为什么你不会看到任何组合使用的文档示例。
例如,不是拥有@RequestParam("klasid")
,而是拥有一个名为klasid
的字段的命令类,而Spring会将所有字段绑定在一起:
@RequestMapping(value = "post")
public String postIndex(@ModelAttribute MyCommandClass command) { /../ }
当您考虑表单通常具有多个参数时,这是有道理的,并且使用@RequestParam
声明它们变得很麻烦。
话虽如此,你仍然可以这样做 - 任何表单控件都会生成@RequestParam
可以绑定的请求参数,但是如果你选择偏离Spring MVC的表单支持命令模式,那么它就很尴尬了。
答案 1 :(得分:4)
您甚至不需要taglib来发送此请求。您可以使用method = "GET"
创建最简单的HTML表单(method
的默认值):
<form action = "...">
<select name = "klasid">
<option value = "value1">Option 1</option>
<option value = "value2">Option 2</option>
<option value = "value3">Option 3</option>
</select>
<input type = "submit" />
</form>