在不使用pojo变量的情况下从jsp中检索值

时间:2012-11-08 09:51:01

标签: spring jsp spring-mvc

我们可以使用request.getParamenter(xxxx),使用commandName或使用隐藏字段,在控制器的jsp页面中获取提交表单的值。

有没有其他方法可以从控制器中的jsp形式获取值?

3 个答案:

答案 0 :(得分:2)

Spring提供了几种将请求中的参数数据绑定到Java中的实际对象的方法。大多数数据绑定是使用带注释的方法或通过在方法中注释参数来指定的。

让我们考虑以下形式:

<form>
  <input name="firstName"/>
  <input name="lastName"/>
  <input name="age"/>
</form>

在Spring控制器中,可以通过多种方式检索请求参数。

@RequestParam Documentation

@RequestMapping("/someurl)
public String processForm(@RequestParam("firstName") String  firstName, 
   @RequestParam("lastName") String  lastName, 
       @RequestParam("age") String  int,) {
 .....
}

如果我们的请求参数是在类Person.java中建模的,我们可以使用其他技术@ModelAttribute

<强> Person.java

public class Person(){
   String firstName;
   String lastName;
   int age;

   //Constructors and Accessors implied.
}

@ModelAttribute Documentation

@RequestMapping(value="/someUrl")
public String processSubmit(@ModelAttribute Person person) {
   //person parameter will be bound to request parameters using field/param name matching.
}

这是Spring用于提供数据绑定的两种最常用的方法。阅读Spring MVC Documentation中的其他人。

答案 1 :(得分:0)

public String myMethod(@RequestParam("myParamOne") String myParamOne) {
 //do stuff 
}

答案 2 :(得分:0)

您可以通过注释@RequestParam直接将字段映射到控制器方法,也可以使用@ModelAttribute直接绑定对象。

public ModelAndView method(@RequestParam(required = true, value = "id") Long id) {
}

public ModelAndView method(@ModelAttribute("pojo") POJO pojo, BindingResult results) {
}