`

Struts2中接收参数的三种模型

 
阅读更多

Struts2中Action接收参数的方法主要有以下三种:

1.Action属性传参数:

注意:属性名应该与参数名相同。

在一个继承ActionSupport类中添加接收参数的属性,并生成其get() set()方法,在请求中附带参数和对应的值,struts2帮我们new这个类的时候,会自动调用getset方法给属性填值。如果属性名与参数名不同,那么生成的getset方法将不能为属性填值。总之,setXXX()中的XXX指的是参数名。

通过属性驱动式接收值的例子:

 

<form action="sys/login.action" method="post">

 <input type="text" name="username">

 <input type="submit" value="submit">

</form>

 在Action中直接通过get、set方法获取。

public class sysAction extends ActionSupport{

 private String username;

 

 public String login() throws Exception {

  System.out.println(username);

  return SUCCESS;

 }

 

 public String getUsername() {

  return username;

 }

 public void setUsername(String username) {

 

  this.username= username;

 }

}

 2Domain model(域模型)接收参数:

     对于接收到的参数,会放到一个数据模型,以便于插入到数据库。当Action接收的参数太多,用第一种的方式接收参数,感觉不舒服。在URLModel.property=value来为数据模型对象填充数据,这个方式实际上是调用了数据模型的setXXX()方法。在Action中我们并不需要new数据模型对象,struts2帮我们做了new这个过程。实际中,传人参数的个数跟数据模型属性的个数并不相同。这是就会用到DTO(数据转换对象),也有人叫VODO,用这个DTO接收数据后,然后填充到数据模型中。

 <form action="sys/login.action" method="post">  
        <input type="text" name="user.username">  
        <input type="text" name="teacher.level">  
        <input type="submit" value="submit"> 
</form>

 通过域模型接收参数:

 

public class sysAction extends ActionSupport{
 private User user;
 private Teacher teacher;

 public String login() throws Exception {
  System.out.println(user.getUsername());
  System.out.println(teacher.getLevel());
  return SUCCESS;
 }

 public void setUser(User user) {
  this.user = user;
 }
 public void setTeacher(Teacher teacher) {
  this.teacher = teacher;
 }
}

 3.Model driven接收参数:

 

要使用ModalDriven时,继承ActionSupport的同时还需要实现ModelDriven接口,这个接口有一个T getModel()方法。在这里,struts2将不再自动new数据模型对象,要手动new。参数还是应该和数据模型的属性相同。这种方式不常用。

 

<form action="sys/login.action" method="post">  
<input type="text" name="username">  
<input type="submit" value="submit"> 
</form>

 Action:必须实现getModel() 方法

 

public class sysAction extends ActionSupport implements ModelDriven<User>{
 private User user;

 public String login() throws Exception {
  System.out.println(getModel().getUsername());
  return SUCCESS;
 }

 public User getModel() {
  if (null == user) {
    user = new User();
  }
  return user;
 }
}

 

 

分享到:
评论

相关推荐

    Struts2中Action接收参数的方法

    DomainModel 是 Struts2 中的一种模型对象,可以用来接收参数。具体步骤如下: 1. 定义 Model 类,例如 `User`,并在 Action 中定义该类的对象,例如 `user`。 2. 在 Model 类中,定义属性,例如 `userName`,并...

    java struts2接收参数的几种方法

    本文将深入探讨Struts2接收参数的几种主要方法,包括通过Action的属性、使用Domain Model(领域模型)以及采用DTO(数据传输对象)进行参数接收。 ### 一、使用Action的属性接收参数 #### 原理 在Struts2框架中,...

    struts2 接收参数

    在Struts2中,接收参数是常见的操作,这涉及到用户通过HTTP请求传递的数据如何被框架捕获和处理。这篇博客文章可能深入探讨了Struts2如何在Action类中获取和管理这些参数。 首先,Struts2的核心是DispatcherServlet...

    Struts2接收参数

    压缩包中的"Struts2_0800_DomainModelParamInput"可能包含了示例代码或项目文件,展示了如何在Struts2中使用Domain Model(领域模型)接收参数。这可能包括Action类、对应的领域模型类、配置文件以及JSP页面。通过...

    Struts2接收参数ModelDriven

    在Struts2中,ModelDriven是它提供的一种处理模型数据的机制,能够帮助开发者更方便地管理和传递Action类中的模型数据。这篇博客文章可能详细探讨了如何在Struts2中使用ModelDriven接口来接收和处理请求参数。 ...

    Struts2 的接受参数的几种方式

    ### Struts2 接受参数的几种方式 #### 第一种方式:直接在 Action 中设置变量 这种方式是最直接的参数接收方式。当从前端传递参数到后端时,我们需要确保 Action 类中有与这些参数名称相匹配的变量。例如,如果...

    Struts2中的参数传递

    ### Struts2中的参数传递 #### 一、概述 在Web开发中,Struts2框架因其灵活、高效的特点被广泛采用。Struts2的核心之一就是它对于参数传递的支持能力,这一点主要依赖于OGNL(Object-Graph Navigation Language)...

    struts2中Action获取参数的3种方式代码

    本文将详细介绍Struts2中Action获取参数的三种主要方式,并通过实际代码示例来阐述每种方法的使用。 1. **通过getter和setter方法获取参数** 这是最常见的方式,Struts2会自动将请求参数与Action类的属性进行匹配。...

    Struts2教学视频

    2. 域模型(Domain Model)是Struts2中用于封装业务数据的对象,Action可以直接引用域模型对象,将请求参数绑定到模型中。 以上就是关于Struts2的一些基础知识点,学习Struts2不仅可以帮助理解MVC模式在实际应用中的...

    Struts2获取参数的三种方法总结

    本文将详细解析Struts2获取参数的三种主要方式:属性驱动、模型驱动以及对象驱动。 1. **属性驱动方式** 属性驱动方式是最基础的参数获取方法,它要求我们在Action类中为每个表单字段创建对应的私有属性,并提供...

    Struts2_ModelDriven接收参数(项目案例及视频)

    这个项目案例和视频教程主要针对初学者,旨在深入理解如何使用Struts2的ModelDriven机制来接收和传递参数。 ModelDriven接口是Struts2提供的一种设计模式,它的核心思想是将业务模型与Action类紧密结合。通过实现...

    Struts2的视频学习代码

    在Struts2中,模型处理业务逻辑,视图负责显示用户界面,而控制器接收用户请求并协调模型和视图。 2. **Action**:在Struts2中,Action类是业务逻辑的主要载体。当用户发出一个请求时,Struts2会创建一个对应的...

    struts1.x 和 struts2.x向Action里填充jsp参数原理

    本篇文章将深入探讨Struts1.x和Struts2.x在向Action中填充JSP参数的原理。 Struts1.x的工作原理: Struts1的核心是ActionServlet,它是一个实现了Servlet接口的控制器。当用户发起HTTP请求时,请求会被Dispatcher...

    马士兵Struts2笔记2013

    2. **Action的属性接收参数** 在Struts2中,Action类可以有各种属性,这些属性可以直接与HTTP请求参数关联。当用户提交表单时,Struts2框架会自动将请求参数绑定到Action的相应属性上,简化了数据的处理。 3. **...

    struts1.0和struts2

    Struts1.0和Struts2是两种不同的Java EE Web应用程序框架,虽然它们都属于Apache Struts项目,但在设计和实现上有显著的区别。Struts2是基于WebWork框架的升级版,它吸取了Struts1的优点并进行了诸多改进,提高了...

    struts2 学习重点笔记

    - **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View) 和控制器(Controller) 三个部分。 - **模型**:主要负责处理业务逻辑和数据访问,常用 JavaBean 或 EJB 实现。 - **视图**:负责向...

    struts2中AJAX实现

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用。AJAX(Asynchronous JavaScript and XML)则是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。通过结合Struts2和AJAX,...

    struts2ajax项目

    此外,为了更好地展示数据,可能还需要在Struts2中使用Interceptor(拦截器),例如,`params`拦截器用于将请求参数绑定到Action,`validation`拦截器负责验证表单数据,`workflow`拦截器管理Action的生命周期。...

    网上书店struts2

    在Struts2中,模型负责业务逻辑,视图负责用户界面,控制器接收用户请求并协调模型和视图的交互。 三、Action与Result 在Struts2中,Action类是业务逻辑的载体,它处理来自客户端的请求,并通过调用Service层的方法...

Global site tag (gtag.js) - Google Analytics