`

Struts2中前台传递数据到Action中的3种方式

 
阅读更多
struts2接收前台传来的参数有3种方法
1、第一种:action 设置 相应的变量

  

  在相应的action中设置与将要传进来的参数名相同的变量

    eg: 前台传给后台两个参数 name=chance & age = 1,那么后台的action中 要设定这样的变量:private String name; private int age;同时,必须设置set,和 get方法

  那么在访问action过程中,struts会自动的为action中的这两个变量设置前台传来的值

  (深度解析:

    实际上,当前台想后台的一个action发出请求的时候,struts会相应的new出来一个action对象,并调用action中的setXXX方法,注意其实action中设置的变量名 可以不和前台传来参数名向同,但setXXX,这个XXX必须与前台的参数名相同

    就这样 struts通过这个set方法将前台传来的值赋给了 action中的变量

  )

2、第二种:DomainModule

  domainmodule 中文解释:域模型,domainmodul接收参数的方式就是,在action中设一个module对象(即实体对象,还不明白就看下面的举例)

  例如,一个bbs系统,实现用户注册模块,那么后台module中 我们就会相应的建立一个 User类,这个user类就是我们前面说过的module,

  分析下为什么要用DomainModule来接收参数,我们从前台向后台的action中传递参数,action做的处理无非是紧接着再把这个参数传递给对应的module,那么假如我们的module有100个变量(呵呵,我说的是假如),那么我们用第一种方法接收参数时就要在action中设置100个变量,但如果我们用domainmodule的话就简单的多,说了这么多,还没讲到怎么用呵呵,切入正题:

  eg:有一个用户登录系统,前台需要向后台传递一个user的name 和 password 两个属性,

    那么我们可以这么处理,首先在相应的action 设一个private User user; 变量(假如我们已经有了User这个Module了),好那么前台传递参数的时候可以这么来写,

    action?user.name=chance&user.password=123或者直接在表单中
<input type="text" name="user.name"/>

  注意:我们依然需要继续给user设置 set get方法

  另外需要注意的是,在action中设置的变量 无论是基本类型,还是引用类型,我们只需要声明,但不需要定义(简单的说,就是我们不需要去 new 一个变量)

  new的过程 由struts来帮我们完成

  下面我们在来考虑一个问题,还拿上面的用户登录系统来举例,通常用户登录的时候 除了用户名,密码,还会填写一个 确认密码(其实这个工作完全可以交给客户端的js来处理,这里只是为了说明问题),但是在 User Module抽象封装的过程它是不会有 confimPassword这一项的,这样我们就不能用domainModule来解决这个问题,怎么办?

  解决方法就是引入 DTO(又交 do,或vo)data transform object,它的工作就两点:接收一下,传递一下;

  接收一下:前台传过来的user对象,我们不直接传递给usermodule 而是传递给 dto对象,例如userDto(它里面会有一个confimPassword变量)

  传递一下:dto接收来参数后 进过一番数据处理,确认密码输入正确那么就会 把 必要的参数变量传递给 usermodule

  搞定!

第三种方式比较特殊,它是Struts2种独有的一种接收用户输入的机制,想在项目中使用模型驱动

(ModelDriven)需要让Action实现com.opensymphony.xwork2.ModelDriven 接口,使用它

的getModel()方法来通知Struts2要注入的属性类型,并且声明属性时一定要实例化,但不需get,

set方法(这是与第二种方式的区别)。
分享到:
评论

相关推荐

    struts2与前台交互时序

    7. **值栈(Value Stack)**:Struts2的值栈是一个数据容器,它可以存储Action对象以及任何其他需要传递到视图的数据。在JSP页面中,可以直接通过OGNL(Object-Graph Navigation Language)表达式访问值栈中的数据。 ...

    AJAX 想Struts2后台传送Json数据并向前台返回Json格式的数据

    首先,让我们理解三种在Struts2中传递数据的方法: 1. **Struts2标签库**:Struts2提供了一套丰富的标签库,如`s:textfield`、`s:submit`等,可以直接在JSP页面中使用。这些标签能够帮助开发者轻松地处理表单提交,...

    uploadify+struts2+json前台动态向后台传数据

    本教程将详细讲解如何使用`uploadify`、`Struts2`和`JSON`技术实现前台动态向后台发送数据,以及展示后台返回参数来完成文件上传的功能。这三个组件在Web开发中各自扮演着重要的角色: 1. **Uploadify**:Uploadify...

    使用struts2框架来实现前台与后台的交互

    标题中的"使用Struts2框架来实现前台与后台的交互"指的是通过Struts2框架协调前端用户界面与后端业务逻辑进行数据交换。在传统的Web开发中,前端HTML页面通常通过HTTP请求与服务器上的后台Java代码进行通信。Struts2...

    struts2+jsp 环保公司门户网站 前台+后台

    Struts2和JSP是两种广泛应用于Web开发的技术,它们在构建环保公司门户网站这样的项目中发挥着关键作用。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java框架,它提供了强大的控制层功能,使得应用程序...

    struts2 实例源代码 +jsp页面

    5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,用于在Action与视图之间传递数据。例如,在JSP中,可以通过`&lt;s:property value="someProperty"/&gt;`来显示Action中相应属性的值。 ...

    JAVA的Struts2完整项目版(源码+数据库)

    1. **Struts2框架**:Struts2是Apache软件基金会的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,提供了一种更高效、更灵活的Web应用开发方式。Struts2的核心是Action类,它是处理用户请求的中心,通过...

    struts2培训笔记

    - **后台类中的数据直接在前台界面显示**:通过Struts2提供的标签库或者OGNL表达式可以方便地展示Action中的数据。 - **前台表单数据直接赋值到后台类属性**:Struts2的默认拦截器能够自动将HTTP请求参数映射到...

    struts2_JSONObjec的使用

    在Struts2的Action类中,你需要创建一个Java对象,该对象的属性对应于你要返回的JSON数据。然后,使用注解`@Result(type="json")`声明返回JSON的结果类型。例如: ```java public class YourAction extends ...

    人事管理系统JSP+Struts2框架

    本文将详细介绍一个使用JSP+Struts2框架构建的人事管理系统,该系统以MySQL为数据库,采用JAVA作为开发语言,结合Struts2框架和JDBC进行数据交互,前台界面则利用JSP和EasyUI库来提供用户友好的操作体验。...

    Struts2和Ajax数据交互示例详解

    ajax请求在项目中常常使用,今天就平时掌握的总结一下,关于使用ajax请求到Struts2中的action时,前台页面与后台action之间的数据传递交互问题。 这里我主要记录下自己所掌握的几种方式。可以根据自己平时项目的需求...

    struts2和JQuery

    5. **OGNL(Object-Graph Navigation Language)**:Struts2内部使用的表达式语言,用于在Action和视图之间传递数据。 6. **插件支持**:Struts2拥有丰富的插件库,可以方便地集成各种功能,如上传下载、图表展示等...

    Struts1学习笔记总结.pdf

    2. VO:用于业务逻辑层向前台传递数据。 Struts-config.xml文件 Struts-config.xml文件是Struts1的核心配置文件,用于配置Struts的各种组件,包括数据源、表单Bean、Action Mapping等。 TLD文件 TLD(Tag ...

    读书供求信息网前台+后台(Struts1.2)

    【标题】"读书供求信息网前台+后台(Struts1.2)"所涉及的知识点主要集中在Struts1.2框架和MySQL数据库的使用上,同时,根据标签中的"css",我们也可以推测该项目还包含了前端CSS样式的设计。接下来,我们将详细讨论...

    struts2.0快速入门实战文档-2

    Struts2提供了一种简洁的方式,通过Action对象与JSP页面之间的交互来实现。 **步骤一:创建实体类** 首先,创建一个JavaBean类,例如`User.java`,用于封装需要传递的数据。在这个例子中,我们创建了一个包含`name...

    demo.zip_action

    通过Action类的setter方法,Struts 2能自动将HTTP请求参数的值绑定到Action的属性上,简化了从前台到后台的数据传递。此外,Struts 2还支持基于注解的参数绑定,如`@RequestParam`和`@FieldParam`,使代码更简洁。 ...

    Struts2+Spring+Hibernate3.2+整合文档及事例程序.zip

    通过学习这些内容,开发者可以了解到如何在实际项目中实现SSH框架的集成,包括Spring管理Struts2的Action、Hibernate的数据持久化以及它们之间的协同工作。 总的来说,这个压缩包资料涵盖了Java Web开发中的关键...

    ext前台接收action传过来的json数据示例_.docx

    这篇文档主要阐述了如何在EXT JS前台接收由Action(通常指Java Servlet、Spring MVC或Struts等后端控制器)传递的JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读易写且...

    基于struts+hibernate的bbs

    ActionForm用于在Action和视图之间传递数据。 - **配置文件**:Struts通过struts-config.xml配置文件管理各个组件,定义Action的映射、表单验证规则等。 - **国际化与本地化**:Struts支持多语言,可轻松实现应用...

    struts图书管理系统

    2. **配置文件**:Struts使用struts-config.xml文件进行配置,定义Action的映射路径、ActionForm表单类、数据源等信息。这是系统运行的基础,确保请求能正确路由到对应的Action。 3. **Model**:模型层通常包括...

Global site tag (gtag.js) - Google Analytics