Spring MVC将一个值列表从JSP页面传递给控制器

时间:2012-11-28 09:42:21

标签: java spring spring-mvc

如果我在<form>中有这样的HTML:

    <input type="text" value="someValue1" name="myValues"/>
    <input type="text" value="someValue2" name="myValues"/>
    <input type="text" value="someValue3" name="myValues"/>
    <input type="text" value="someValue4" name="myValues"/>

我知道在servlet中我可以使用:

获取值
String[] values = request.getParameterValues("myValues");

如何使用Spring MVC做类似的事情?

3 个答案:

答案 0 :(得分:7)

参数作为参数传递给绑定到控制器的方法

@RequestMapping(value = "/foo", method = RequestMethod.POST) // or GET
public String foo(@RequestParam("myValues") String[] myValues) {
    // Processing
    return "view";
}

答案 1 :(得分:2)

你已经在spring web MVC中拥有HttpServletRequest request。我们可以使用相同的方法获得它,即使用

 String[] values = request.getParameterValues("myValues");

此外,您可以使用ServletRequestUtils在Spring中读取请求参数,如:

String[] values = ServletRequestUtils.getRequiredStringParameters(request, "myValues");

了解如何访问Http请求:Spring 3 MVC accessing HttpRequest from controller

对于基于注释的方法:请参阅Alex的答案。

答案 2 :(得分:0)

在jsp中我想:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <!-- Add taglib in beginning of the page.-->

<!-- In body the html -->
<form:form  action="/foo" method="post" commandName="MyValues">
  <input type="text" value="someValue1" name="myValues1"/>
  <input type="text" value="someValue2" name="myValues2"/>
  <input type="text" value="someValue3" name="myValues3"/>
  <input type="text" value="someValue4" name="myValues4"/>
</form:form>

参见13.9节中的参考文献。使用Spring的表单标记库标记解释,链接:http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

控制器是Alex回答的同一个朋友的一部分。