2010-11-09 37 views
4

我只想用一个requestparameter发送我的dropdownlist的值。在我的情况是在Spring MVC中传递一个请求参数3

Kidscalcula_web/start.htm?klasid=myValueHere 

我知道这样做的方式,但它听起来是非常不合理的使用它。如果我感到无聊,我可能会写一些jQuery来做一个帖子并发送参数给实例。现在听起来像手动创建我的请求字符串是一个非常糟糕的主意,因为Spring会处理这个问题。那么我怎样才能制作一个简单的表单,只需将我的下拉列表发送到我的控制器?

这只是我找不到东西这么琐碎的任何地方,和你一个也许可以帮助我quickly.I假设控制器将是一样微不足道:

@RequestMapping(value = "post") 
    public String postIndex(@RequestParam("klasid") String klasid, HttpServletResponse response, 
      HttpServletRequest request) { 
} 

可我真的找不到有关如何让JSP为我发送该值的任何示例。 <form> taglib可以吗?

回答

11

<form> taglib通常与form-b​​acking命令对象一起使用,而不是绑定到使用单个参数的控制器。这就是为什么你不会看到任何组合在一起使用的任何文档示例。

例如,而不是@RequestParam("klasid"),你必须有一个名为klasid领域的命令类和Spring将一大堆绑定在一起:

@RequestMapping(value = "post") 
public String postIndex(@ModelAttribute MyCommandClass command) { /../ } 

这是有道理的,当你考虑到通常的形式有多个参数,并且使用@RequestParam来声明它们会变得很麻烦。尽管如此,你仍然可以这么做 - 任何表单控件都会生成@RequestParam可以绑定的请求参数,但是如果你选择偏离Spring MVC的form-b​​acking命令模式,那么这很不方便。

+0

我们的应用程序启动之前,我们需要问我们的用户进行了在一个cookie举行一个选择;但它确实听起来像是将一个值放在命令类中的过度杀伤力。这就是为什么我想知道是否没有其他可以使用。 – toomuchcs 2010-11-09 23:01:22

+0

参数是否应该在“{/../}”中传递? – 2015-10-10 08:21:45

3

你甚至不需要一个taglib发送这个请求。您可以创建一个method = "GET" HTML simpliest形式(什么是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>