`
liliang_xf
  • 浏览: 62738 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论
  • yangqk1: 不知道楼主还在关注这个么,你做的这个项目还在继续么。我真正研究 ...
    webim
  • 周超亿: 你好,我想请问下, http://code.faqee.com ...
    webim
  • 周超亿: 你好,能不能把项目打包发给我一份,谢谢 Email:zhouc ...
    webim
  • liliang_xf: SQL子查询,连接查询,数据汇总,GROUP BY,ORDER ...
    sql的
  • liliang_xf: http://www.ibm.com/developerwor ...
    webim

Strut中一个FormBean邦定多个PoJo

阅读更多

有时候在开发当中会遇到这样的一种需求,页面很大,但页面中的所有表单元素不一定是存放在一张表里,当使用O/RMapping技术时,如果前台不做分类处理的话,拿到后台来拆分属性是件很麻烦的事儿,这个时候,可以这样做,在FormBean不像以前直接定义基本对象,而直接定义与数据库映射后的类对象,前端以一种写法就可以自动的往这个类对象的指定属性里赋值了,写法如下:

java 代码
  1. //1.FormBean的定义:   
  2. public class IndexForm extends ActionForm   
  3. {   
  4.     //一定要注意,定义类对象时一定要给其指定到一个对象上,要不然会报空指针异常   
  5.      private FormA formA = new FormA();   
  6.      private FormB formB = new FormB();   
  7.   
  8.      public FormA getFormA(){return formA;}   
  9.      public void setFormA(FormA formA){this.formA = formA;}   
  10.      public FormB getFormB(){return formB;}   
  11.      public void setFormB(FormB formB){this.formB = formB;}   
  12. }   
  13.   
  14. public class FormA   
  15. {   
  16.      private String name;   
  17.      private String age;   
  18.      public String getAge(){return age;}   
  19.      public void setAge(String age){this.age = age;}   
  20.      public String getName(){return name;}   
  21.      public void setName(String name){this.name = name;}   
  22. }   
  23.   
  24. public class FormB   
  25. {   
  26.      private String apple;   
  27.      private String banana;   
  28.      private String orange;   
  29.      public String getApple(){return apple;}   
  30.      public void setApple(String apple){this.apple = apple;}   
  31.      public String getBanana(){return banana;}   
  32.      public void setBanana(String banana){this.banana = banana;}   
  33.      public String getOrange(){return orange;}   
  34.      public void setOrange(String orange){this.orange = orange;}   
  35. }   
xml 代码
  1. //2.Jsp页的写法   
  2. <html>    
  3. <head>  
  4.    <title>JSP for IndexForm form</title>  
  5. </head>  
  6. <body>  
  7.    <html:form action="/index">  
  8.      //用"类型名.属性名"这样的形式来写,这么写后,该Text框的值就会被自动传入到IndexForm的formA属性(对象)的name属性里了   
  9.     <input type="text" name="formA.name"/>  
  10.     <input type="text" name="formB.orange"/>  
  11.     <html:submit/>  
  12.    </html:form>  
  13. </body>  
  14. </html>  
分享到:
评论
1 楼 wang20051 2007-12-11  
还可以定义一个动态formbean,供action调用
formbean定义代码如下:
public class LazyDynaValidatorForm extends DynaValidatorForm {

	private static final long serialVersionUID = -7836802016729590948L;
	
	private LazyDynaBean value=new LazyDynaBean();

	public boolean contains(String arg0, String arg1) {
		return value.contains(arg0, arg1);
	}

	public boolean equals(Object obj) {
		return value.equals(obj);
	}

	public Object get(String arg0, int arg1) {
		return value.get(arg0, arg1);
	}

	public Object get(String arg0, String arg1) {
		return value.get(arg0, arg1);
	}

	public Object get(String arg0) {
		return value.get(arg0);
	}

	public DynaClass getDynaClass() {
		return value.getDynaClass();
	}

	public Map getMap() {
		return value.getMap();
	}

	public int hashCode() {
		return value.hashCode();
	}

	public void remove(String arg0, String arg1) {
		value.remove(arg0, arg1);
	}

	public void set(String arg0, int arg1, Object arg2) {
		value.set(arg0, arg1, arg2);
	}

	public void set(String arg0, Object arg1) {
		value.set(arg0, arg1);
	}

	public void set(String arg0, String arg1, Object arg2) {
		value.set(arg0, arg1, arg2);
	}

	public int size(String arg0) {
		return value.size(arg0);
	}

	public String toString() {
		return value.toString();
	}

}
在action中调用方法如下:
LazyDynaValidatorForm df = (LazyDynaValidatorForm) form;
String 变量名 = df.getString("变量名");
request.setAttribute("变量名",变量名):


在表单中取值
<input type="text" name="变量名" />

相关推荐

    strut2 strut2 登录

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。Struts2提供了一种结构化的、灵活的方式来组织和控制应用程序的流程,使得开发者可以更高效地构建...

    strut2jar包

    这个"strut2jar包"很可能是包含了Struts2框架的JAR文件,这些文件通常包含了框架的类库、接口、实现以及必要的资源文件。 Struts2的主要特点和优势包括: 1. **灵活的配置**:Struts2允许开发者通过XML或注解来配置...

    strut+hibernate登录源代码

    该代码使用strut+hibernate,是一个完整的登录代码。登录逻辑是:从数据库表读取里面存有的用户名和密码,用户在tomcat运行的登录界面上输入用户名和密码,如果输入正确,则进入成功界面,失败则重置登录界面密码,...

    strut2文件上传实例

    总的来说,"strut2文件上传实例"是一个关于如何在Struts2框架下实现文件上传功能的示例,涵盖了配置、表单创建、Action处理、文件保存以及安全性考虑等多个方面。通过这个实例,开发者可以学习到如何在实际项目中...

    yazaki,strut2

    **标题与描述解析** 标题"yazaki,strut2"提及了两个关键元素:Yazaki和Strut2。Yazaki很可能是指一家公司或一个特定的项目,它使用了Strut2作为其...为了进一步理解这个系统,需要更多关于代码结构和业务逻辑的信息。

    strut2文件下载

    在这个"strut2文件下载"的资源中,我们可以看到与文件下载功能相关的实现,特别是对于处理中文文件名的乱码问题。 在Web应用中,文件下载是一个常见的需求,用户可能需要下载服务器上的各种类型的数据,如文本、...

    Strut+Spring+Hibernate框架的工作原理

    Strut+Spring+Hibernate框架的工作原理 Strut+Spring+Hibernate框架是当前流行的Java EE框架,它们之间的...Struts提供了一个validate框架,可以在Struts配置文件中配置具体的错误提示,然后在FormBean中进行验证。

    jsp+strut写的网上书店

    这个“jsp+strut写的网上书店”项目为初学者提供了很好的实践平台,通过实际操作可以深入理解JSP和Struts框架的运用,同时对MVC模式、数据库操作、用户认证与授权等Web开发核心概念有更直观的认识。

    传智播客Strut2多文件上传

    多文件上传是Web应用中常见的功能,尤其在处理用户需要提交多个文件时,如图片、文档等。本教程“传智播客Strut2多文件上传”旨在帮助开发者理解如何在Struts2框架下实现这一功能。 首先,我们要明白Struts2的核心...

    strut2 jar包

    标题中提到的"strut2 jar包"是指Struts2框架运行所需的Java类库文件集合,这些jar包包含了Struts2的核心组件、插件和其他依赖库。在Java开发中,jar(Java Archive)文件是一种归档格式,用于打包和分发Java类和资源...

    strut2的jar包

    在"strut2的jar包"中,包含的五个核心JAR文件至关重要,它们分别是: 1. **struts2-core.jar**:这是Struts2框架的核心库,包含了所有基本的控制器、拦截器、结果类型和其他核心功能。这个JAR文件提供了Action类、...

    strut2入门几个小demo

    这个"strut2入门几个小demo"是针对初学者的一个实践教程,旨在帮助新接触Struts2的开发者快速上手,理解并掌握其基本概念和核心功能。 1. **值栈(Value Stack)** Struts2中的值栈是核心概念之一,它是一个存储...

    strut2 spring hibernate web 相关配置文件

    strut2 spring hibernate web 相关配置文件strut2 spring hibernate web 相关配置文件strut2 spring hibernate web 相关配置文件strut2 spring hibernate web 相关配置文件strut2 spring hibernate web 相关配置文件

    strut2+hibernate+mysql的实例

    它提供了丰富的拦截器和插件体系,能够方便地进行表单验证、数据绑定和异常处理。在本实例中,你将看到Struts2如何定义Action类,接收并转发用户请求,以及如何配置struts.xml来定义URL映射和处理逻辑。 Hibernate...

    strut2入门教程

    通过以上步骤,可以实现一个简单的“Hello World”示例,熟悉Struts2的基本工作流程和技术要点。 综上所述,Struts2作为一种先进的Web开发框架,不仅提供了一套完整的解决方案,而且通过其高度灵活的设计思想,极大...

    传智播客_黎活明_strut2的视频PPT

    传智播客_黎活明_strut2的视频PPT

    strut2简单登录

    在这个"strut2简单登录"的学习资源中,我们将探讨如何利用Struts2实现一个基本的用户登录功能。 首先,我们需要理解Struts2的核心概念。Struts2框架基于拦截器(Interceptor)机制,它在请求处理的过程中插入了一...

    Strut1和Strut2的区别

    - **Struts2**中的`Action`则是多例模式,即每个用户请求都对应一个新的`Action`实例。这种方式避免了线程安全问题,同时也使得每个请求之间不会相互影响。 #### 三、Action的执行流程 - **Struts1**的`Action`...

    strut2Json登录实例

    总结起来,"Strut2Json登录实例"是一个基于Struts2、JSON和jQuery的Web应用示例,它演示了如何使用这些技术实现用户登录功能。Struts2负责处理业务逻辑和数据转换,JSON提供数据交换的便利性,而jQuery简化了前端与...

Global site tag (gtag.js) - Google Analytics