`
小鑫。
  • 浏览: 133325 次
  • 性别: 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方法给属性赋值。
分享到:
评论

相关推荐

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    Struts2中关于ValueStack的一些操作

    1、 ValueStack其实就是一个放置Java对象的堆栈而已,唯一特别的是可以使用EL来获得值堆栈中对象属性的数据,并可以为值堆栈的对象属性赋值。 2、 EL,全称Express Language,即表达式语言。不要被语言吓倒,它是...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    JSP 开发之Struts2内建自定义拦截器

    Struts2的自定义拦截器主要用于解析请求参数,将请求参数赋值给Action属性,执行数据校验,文件上传等等操作。当需要扩展Struts2的功能时,我们只需要提供相应的拦截器并将它配置到Struts2容器中即可;当我们不需要...

    Struts_config.xml详解

    >>> prefix=""// 指定填充当前 Action 关联 FormBean 时 ,要添加到请求参数名称的前缀,因此,如果请求参数名为 "username" 并且 prefix 属性被设置为 "search" , 则将对 FormBean 调用一个名为 ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    人事OA管理系统

    b、部门详情修改 c、查看部门所有员工 d、添加部门 f、修改部门 2、员工考勤管理 a、当天考勤查询 b、所有考勤查询(多条件考勤查询) 问题: 如果action同用全局属性会出现属性上次查询被赋值的情况 正在在解决方案...

    客户关系管理系统框架搭建(二)

    * cn.itcast.crm.web.action:struts2的action * cn.itcast.crm.web.form:封装页面数据的javaBean * junit:开发人员测试用的 * 搭建hibernate层 * 定义需求:部门信息的页面数据要插入到数据库中 * 定义...

    Java语言基础下载

    Struts ActionServlet控制器对象 642 Struts Action Classes 642 搞定Action对象 643 处理异常 643 Action的分类 643 Struts Action Mapping 646 使用ActionForward导航 647 Struts ActionForm Bean捕获表单数据 648...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    freemarker总结

    2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...

    ajax请求返回的数据看不到回调函数没有执行也没报错

    项目用的是ssh,使用jquery的$.post访问struts2的Action,哪里都没有报错,可就是没有结果。 现在$.post要返回保存着权限的集合Collection,权限类Privilege和用户类User相互关联,也就是Privilege里使用set集合保存...

Global site tag (gtag.js) - Google Analytics