`
小鑫。
  • 浏览: 134813 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2为父Action自动赋值

 
阅读更多
    在使用Struts2框架做项目的时候,大多数情况下,我们都会定义一个Action继承ActionSupport作为我们的父Action。在父Action中我们会把通用的一些属性提出来,但是怎么为这些属性赋值呢?

    1.先看一下利用java反射,我们能从子类中获取父类的哪些属性和方法。
/**
 * 父类,分别定义了三种修饰符修饰的属性和方法
 */
public class Father {

	private String name;

	public String love;

	protected String money;

	private String getName() {
		return this.name;
	}

	public String getLove() {
		return this.love;
	}

	protected String getMoney() {
		return this.money;
	}

}

/**
 * 子类,只继承父类
 */
public class Child extends Father {

}

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * 测试类
 * 测试Child的getDeclaredMethods,getMethods能获取哪些Method
 * 测试Child的getDeclaredFields,getFields能获取哪些Field
 */
public class Test {

	public static void main(String[] args) {

		// 输出""
		{
			Method[] methods = Child.class.getDeclaredMethods();

			for (Method method : methods) {
				System.out.println(method.getName());
			}
		}

		System.out.println("-----------------------------------");

		// 输出
		// getLove
		// wait
		// wait
		// wait
		// equals
		// toString
		// hashCode
		// getClass
		// notify
		// notifyAll
		{
			Method[] methods = Child.class.getMethods();

			for (Method method : methods) {
				System.out.println(method.getName());
			}
		}

		System.out.println("-----------------------------------");

		// 输出""
		{
			Field[] fields = Child.class.getDeclaredFields();

			for (Field field : fields) {
				System.out.println(field.getName());
			}
		}

		System.out.println("-----------------------------------");

		// 输出
		// love
		{
			Field[] fields = Child.class.getFields();

			for (Field field : fields) {
				System.out.println(field.getName());
			}
		}

	}

}

    经过测试,用反射反射只能从子类中获取父类的public的属性和方法。
   
    2.经测试在Struts2访问Action能通过父Action的public方法给属性赋值。
分享到:
评论

相关推荐

    Struts中FormBean的日期类型字段赋值自动转化

    本篇文章将深入探讨在Struts中FormBean的日期类型字段如何进行赋值以及自动转化。 一、FormBean的概念与作用 FormBean是Struts中的一种特殊Java类,用于封装HTTP请求中的参数。它们通常继承自`org.apache.struts....

    struts2的新特性

    - **自动扫描Action类**:Convention Plugin能够自动扫描指定包(默认为struts,action及其子包)下的所有Action类,从而减少配置文件的工作量。 - **自动推断命名空间和视图路径**:根据Action类所在的包名自动...

    struts2中的action.doc

    Struts2框架通过ActionContext获取到request对象,并从中提取用户输入的数据,将其赋值给Action的相应属性。 4.3.2 基本的数据对应方式 Struts2提供了两种主要的数据绑定方式:属性驱动(FieldDriven)和模型驱动...

    STRUTS2:零配置插件CodeBehind

    通过该插件,Struts2能够自动扫描并识别Web应用程序中的Action类,从而推测出它们的命名空间(namespace)。此外,Zero Config还能够根据Action类的位置推断出结果视图(result view)的路径。 ##### 2.1 配置方法 在`...

    Struts2+jQuery(不用JSON)实现局部刷新

    - **jQuery的AJAX请求**:使用jQuery的$.ajax()方法,设置URL为Struts2的Action路径,成功回调函数内解析响应内容并更新DOM。 5. **示例代码**: - Struts2 Action代码可能如下: ```java public class ...

    我的struts2的总结

    在Struts2中,EL表达式可以用来动态获取Action类中的属性值。当EL表达式无法找到对应的属性或者属性值为null时,可能会抛出异常。因此,在使用EL表达式时需要注意确保引用的属性是可用的。 ### 国际化资源文件 ...

    struts2数据类型转换器

    在Struts2中,数据类型转换器是一个关键组件,它负责将HTTP请求参数转换为Action类中的属性类型,以供业务逻辑处理。这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们...

    struts2下载功能实现

    在`execute()`方法中,我们根据`articleId`查询数据库,获取文件的实际路径或URL,并将其赋值给`fileName`,然后返回SUCCESS,使得Struts2能够执行配置的结果类型。 3. **JSP页面**: JSP页面是用户界面,用户点击...

    struts2对Ognl的封装--TypeConverter

    然后,在Struts2的配置文件或Action类中,你可以指定这个转换器应用于哪些类型或字段。 此外,Struts2的`ValueStack`也会使用TypeConverter来处理Action类属性的设置。当Action实例化后,ValueStack会遍历请求参数...

    struts2类型转换和国际化

    当用户通过表单提交请求时,Struts2会自动尝试将请求参数转换为Action类中相应字段的类型。这一过程遵循以下步骤: 1. 用户发起请求,Struts2根据`struts.xml`配置文件找到对应的Action。 2. 在Action中,Struts2...

    struts2的日期回显

    `params`拦截器会尝试从请求中获取名为`birthDate`的参数,并将其转换为日期类型,然后赋值给Action的`birthDate`属性。如果验证失败,比如日期格式不正确,Struts2会将当前的Action实例(包含了用户的原始输入)...

    Struts2 ConverterType类型转换 案例源码

    现在,当用户在前端输入坐标并提交表单时,Struts2框架会自动调用我们定义的`PointConverter`,将坐标字符串转换为Point对象,并将该对象赋值给Action类的point属性。这个案例展示了Struts2类型转换的强大功能,允许...

    struts2标签大全

    Struts2标签库是开发Java Web应用程序时常用的一种工具,它极大地简化了JSP页面的编写,提高了开发效率。在JSP中,我们通常使用`<%@ taglib prefix="s" uri="/struts-tags" %>`来引入Struts2的标签库。下面将详细...

    Struts2例子6

    5. 创建对应的Action类,包含一个日期类型的属性,Struts2会自动调用配置的转换器将请求参数转换为Action属性的值。 6. 测试并验证转换器是否正确工作,即用户输入的日期字符串能正确转换并赋值给Action的日期属性。...

    struts2学习笔记

    6. **POJO数据绑定**: Struts2支持直接使用POJO对象来处理表单数据,Action中可以直接定义与表单字段同名的属性,Struts2会自动进行数据绑定,无需像Struts1那样使用`request.getParameter()`。如果有多条数据,可以...

    struts2培训笔记

    - **前台表单数据直接赋值到后台类属性**:Struts2的默认拦截器能够自动将HTTP请求参数映射到Action的属性上。 #### 五、Struts2执行流程 1. **用户请求**:用户通过浏览器发送*.action请求。 2. **执行Struts2...

    struts2数据库常用操作

    Struts2的配置文件(struts.xml或struts.properties)定义了Action类方法与页面之间的映射关系。当Action方法执行完毕后,根据返回的字符串(例如"Error")决定跳转到哪个JSP页面。 6. **数据传输对象(DTO,Data ...

    struts2中使用freeMarker

    - 在Struts2的配置文件(通常为struts.xml)中,你需要指定FreeMarker作为默认的视图技术。 - 配置FreeMarker的路径,确保Struts2能够找到模板文件。例如: ```xml <constant name="struts.freemarker.templates...

Global site tag (gtag.js) - Google Analytics