王朝网络
分享
 
 
 

轻松使用FormBean,摆脱繁重的FormBean的生成、改写......(lazyBean的使用)

王朝java/jsp·作者佚名  2006-01-10
宽屏版  字体: |||超大  

作者:喧海

我们在使用struts的时候免不了生成大量的formBean,当有业务变化的时候还要修改大量的get、set方法,虽然IDE可以帮助生成这些get、set方法,但是数量多的时候也比较麻烦!最近因为工作的需要找到了新版本struts(1.2.7)的一些新加特性,这部分特性可以使你摆脱以前这些烦人的修改。下面我们可以看一些简单代码来了解这个新特性

//form.jsp

//*************************************************************

<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ page contentType="text/html; charset=GBK" %>

<html:html>

<head>

<title>

Jsp

</title>

</head>

<body>

<html:form action="dynaAction.do" method="POST">

编号: <html:text property="custNo"/>

姓名: <html:text property="custName"/>

地址: <html:text property="address"/>

年龄: <html:text property="age"/>

e-mail: <html:text property="email"/>

电话: <html:text property="tel"/>

<html:submit property="submit" value="Submit"/><br>

<html:reset value ="Reset"/>

</html:form>

</body>

</html:html>

jsp页面没有变化,主要变化的是FormBean和ActionBean的使用,我们来看FormBena 的变化

//formbean(dynaActionFm.java)

//*******************************************************************

import javax.servlet.http.*;

import org.apache.struts.action.*;

import org.apache.struts.validator.*;

public class dynaActionFm extends LazyValidatorForm {

//以前的版本继承ActionForm,现在本例继承了LazyValidatorForm

public ActionErrors validate(ActionMapping actionMapping,

HttpServletRequest httpServletRequest) {

/** @todo: finish this method, this is just the skeleton.*/

return null;

}

public void reset(ActionMapping actionMapping,

HttpServletRequest servletRequest) {

}

}

//*******************************************************************

在FormBean中省略一切的set、get,如果你愿意连这个文件也可以省略掉,只要在strurs-config.xml加入描述既可(不是get、set的描述)

大家也许在想struts1.1中开始有了DynaActionForm,也可以不用写那么多的set、get,只要在配置文件(struts-config.xml)中加入相应的属性配置也可以啊,我们这里可以连配置文件都不用写了! 具体的类介绍可查阅这里(http://www.niallp.pwp.blueyonder.co.uk/

下面看action的使用

//ActionBean(dynaAction.java)

//*******************************************************************

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionForm;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.Action;

import org.apache.commons.beanutils.DynaBean;

import java.util.Map;

public class dynaAction

extends Action {

public ActionForward execute(ActionMapping actionMapping,

ActionForm actionForm,

HttpServletRequest servletRequest,

HttpServletResponse servletResponse) {

DynaBean dynaForm = (DynaBean)actionForm;//转换为dynaBean,以前的是ActionForm

String custNo = (String)dynaForm.get("custNo");

String custName = (String)dynaForm.get("custName");

String address = (String)dynaForm.get("address");

//.......do someting

//原来的使用是form.getXXXXX(),现在是form.get("XXXXX")

return actionMapping.findForward("listview");//显示页面

}

}

//*******************************************************************

从上面可以看出来,lazyBean实现了自动映射,还可以自动实现反射

这样的话你的FormBean成为了正在的动态的了,表单增加,在你的Action中就可以使用

还有不同情况、不同方式的使用,具体可以看http://www.niallp.pwp.blueyonder.co.uk/了解

下面附struts-config.xml

//struts-config.xml

//*******************************************************************

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<form-beans>

<form-bean name="dynaActionFm" type="welcome.dynaActionFm" />

</form-beans>

<action-mappings>

<action name="dynaActionFm" path="/dynaAction" scope="request" type="welcome.dynaAction">

<forward name="listview" path="/listJsp.jsp" />

</action>

</action-mappings>

<message-resources parameter="ApplicationResources" />

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

</plug-in>

</struts-config>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有