Struts中ActionForm小结

要想明白struts的控制流程以及它核心API的实现原理(比如 Action/DispatchAction/ActionForm的实现原理),玩转struts1.2的关键就是能够玩转 ActionForm。

ActionForm的应用

1、——ActionForm的特性

1.创建一个form类必须继承于四个父类中的一个,比如ActionForm、ValidatorForm。

2.一个form类中的每一个属性都将和页面中form表单中的每一个表单元素一一对应

Example:

一个表单为:

<form>

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

<input type="password"name="password"></input>

<input type="text"name="email"></input>

</form>

一个与之对应的form类

public class UserForm extends ActionForm{

private String username;

private String password;

private String email;

private String address;

//下面省略getter和setter方法

}

一个引用了该form类的appAction:

<form-beans>

<form-bean name="userForm"type="form.UserForm"></form-bean>

</form-beans>

<action-mappings>

<action path="/test" type="action.TestAction" name="userForm"attribute="uf" scope="request"></action>

</action-mappings>

3.在引用了form-bean的action中name属性的值就是form-bean中name的值

4.这个userForm默认会被放在session中,使用scope可以指定存储该form对象的地方

2、——普通HTML表单使用Form的工作原理

ActionServlet 对struts-config进行解析时,当解析到某个action中存在一个属性name,那么ActionServlet中的 RequestProcessor就会根据该name的值找到对应的form-bean然后创建一个对应的form类实例,放在我们定义的存储范围中,当表单提交到action对应的appAction之前也就是到达FC的时候,FC会做以下事情:

1.根据路径找到对应的内存中存放着的配置对象中的action

2.根据action中的attribute属性,从session中得到一个对应的form实例

3.该form实例调用reset方法对自己进行清空

4.用表单中的值去填充该form实例

3、——Form与实体对象之间的关系

有的时候我们为了方便会把取到的form中的值直接拷贝到实体对象中去然后把实体对象再存储到数据库中,这样给我们的编程带来了很多的方便,但前提是实体对象中需要拷贝的属性,form中要拷贝过去的属性,与form对应的表单元素他们三者必须一一 对应.这样我们就可以把表单中的值得到封装到form中然后再把form中与实体对象中属性相同的值拷贝到实体对象中。

Example:

entity:

public class User{

private String name;

private String password;

private double salary;

private String address;

//省略getter和setter方法

}

form:

public class UserForm{

private String name;

private String password;

private String salary;

//省略getter和setter方法

}

表单:

<form>

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

<input type="password"name="password"></input>

<input type="text" name="salary"></input>

</form>

1.把表单中的值赋值给UserForm

2.把UserForm中的值拷贝到User对象中:

//下面这条语句是在action的某个方法中做的所以form直接可以用

BeanUtils.copyProperties(user,form);

3.将user对象存放在数据库中

Struts中ActionForm小结

时间: 2024-10-13 06:22:07

Struts中ActionForm小结的相关文章

Struts中Action&ActionForm

在Struts架构中,通常使用一种名为ActionForm的系统状态Bean,来实现应用系统的非持久性数据存储和维护功能.具体来说,这种类型的对象主要用于保存用户请求表单中的数据,并可保持其状态的连续性,即在不同的页面间传递这些数据. ActionForm Bean的运行处理过程如下: 控制器ActionServlet接收到一个客户端请求后,会将该请求委托给一个RequestProcessor对象进行处理.该对象是遵照配置文件struts-config.xml中与该请求匹配的<action>子

Struts中Validate()和validateXxx的使用

Struts中Validate()和validateXxx的使用 学习struts2之后,你会发现validate在之前是没有的!它是怎么实现的呢? validate和validateXxxx都是拦截器实现的!在一个action中如果调用里面的方法则一点会去调用validate这个方法.而如果有validateXxxx这个方法.就要看你现在调用的是不是Xxxx了! 比如,现在外面调用的是login方法(在action)中.顺序是: validateLogin->validate->login

Json在Struts中的转换与传递

本文主要探讨普通数据如何快速转换为Json数据,一共讨论2种方法: 首相准备页面和实体类: 页面: <body> <div id="topLoginDiv"> 用户名: <input name="user.name" id="loginName" />  密码: <input name="user.password" id="loginPassword" />

Action开发、通配符、路径问题和struts中常量用法

1.action开发 开发的几种方式 (1).继承自ActionSupport,(如果用struts的数据效验功,能必须必须使用此功能,因为ActionSupport实现了数据效验的接口) public class UserAction extends ActionSupport{} (2).实现Action接口,该接口的内容如下.(有五个常量和一个方法) pubic interface Action{ public static final String success="success&qu

Struts中的常量

下面是Struts中常量的一些常用配置,保存下来留作积累吧. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"

Struts中的数据处理的三种方式

Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() throws Exception { // 1. 请求数据封装: 2. 调用Service处理业务逻辑,拿到结果数据 3. 数据保存到域中 /* * // Struts中对数据操作,方式1: 直接拿到ServletApi, 执行操作 HttpServletRequest request = Serv

struts中的请求数据自动封装

Struts 2框架会将表单的参数以同名的方式设置给对应Action的属性中.该工作主要是由Parameters拦截器做的.而该拦截器中已经自动的实现了String到基本数据类型之间的转换工作.在struts中,默认使用拦截器 <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> 进行请求数据自动封装,它会JSP中提交的

Struts中数据处理

对数据操作的所有方法:(把数据保存到域中)方式1.直接获取ServletAPI(耦合)核心类:ServletActionContext 提供静态方法(解耦) HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session= request.getSession(); ServletContext application=ServletActionContext.getServletContext(

struts中的helloword(1)

注:文章中的全部图片均在附件中明确表明 首先要安装jdk1.6以及tomcat6和myeclipse 对于这些配置的安装 这里不再细细说明 其次是下载struts2 第一步:去struts21的官网 http://struts.apache.org/2.1.6/index.html 点击下面图1中的的download now,下载图二中的全出即可. 下载后解压待用: 第二步: 打开myeclipse tomcat的集成较简单,不多讲:新建一个web project 取名为struts2: 第三步