【问题标题】:Retrieving values from jsp without using pojo variables从 jsp 中检索值而不使用 pojo 变量
【发布时间】:2012-11-08 19:44:16
【问题描述】:

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

还有其他方法可以从控制器中的 jsp 表单中获取值吗?

【问题讨论】:

  • 看完答案还有什么问题吗?
  • 是的..当我们使用 Spring MVC 时没问题..当我们使用 Servlets 时会怎样..我的意思是在 servlet 中检索值..我们是否有与我们所拥有的相同的注释春天..???
  • 一旦您离开 Spring MVC,即调度程序和 servlet,您将失去 Spring 提供的数据绑定功能。在使用 Spring MVC 之后,我更愿意使用该框架而不是直接的 J2EE 堆栈。

标签: spring jsp spring-mvc


【解决方案1】:

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 中阅读其他人的信息。

【讨论】:

    【解决方案2】:
    public String myMethod(@RequestParam("myParamOne") String myParamOne) {
     //do stuff 
    }
    

    【讨论】:

      【解决方案3】:

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

      public ModelAndView method(@RequestParam(required = true, value = "id") Long id) {
      }
      
      public ModelAndView method(@ModelAttribute("pojo") POJO pojo, BindingResult results) {
      }
      

      【讨论】:

        猜你喜欢
        • 2022-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 1970-01-01
        相关资源
        最近更新 更多