有时候在开发当中会遇到这样的一种需求,页面很大,但页面中的所有表单元素不一定是存放在一张表里,当使用O/RMapping技术时,如果前台不做分类处理的话,拿到后台来拆分属性是件很麻烦的事儿,这个时候,可以这样做,在FormBean不像以前直接定义基本对象,而直接定义与数据库映射后的类对象,前端以一种写法就可以自动的往这个类对象的指定属性里赋值了,写法如下:
java 代码
- //1.FormBean的定义:
- public class IndexForm extends ActionForm
- {
- //一定要注意,定义类对象时一定要给其指定到一个对象上,要不然会报空指针异常
- private FormA formA = new FormA();
- private FormB formB = new FormB();
- public FormA getFormA(){return formA;}
- public void setFormA(FormA formA){this.formA = formA;}
- public FormB getFormB(){return formB;}
- public void setFormB(FormB formB){this.formB = formB;}
- }
- public class FormA
- {
- private String name;
- private String age;
- public String getAge(){return age;}
- public void setAge(String age){this.age = age;}
- public String getName(){return name;}
- public void setName(String name){this.name = name;}
- }
- public class FormB
- {
- private String apple;
- private String banana;
- private String orange;
- public String getApple(){return apple;}
- public void setApple(String apple){this.apple = apple;}
- public String getBanana(){return banana;}
- public void setBanana(String banana){this.banana = banana;}
- public String getOrange(){return orange;}
- public void setOrange(String orange){this.orange = orange;}
- }
xml 代码
- //2.Jsp页的写法
- <html>
- <head>
- <title>JSP for IndexForm form</title>
- </head>
- <body>
- <html:form action="/index">
- //用"类型名.属性名"这样的形式来写,这么写后,该Text框的值就会被自动传入到IndexForm的formA属性(对象)的name属性里了
- <input type="text" name="formA.name"/>
- <input type="text" name="formB.orange"/>
- <html:submit/>
- </html:form>
- </body>
- </html>