开源框架Struts:FormBean滴那些事儿

? FormBean 的意义 
? 定义FormBean 
? 声明FormBean 
?从FormBean中获得请求参数 
? 输出FormBean数据到页面 
? 动态FormBean
----------------------------START--------------------------------
? FormBean 的意义 
–“数据邮递员”
 
? 可以从页面到Action,或从Action到页面来传递数据 
–获得请求参数 
? 代替了request.getParameter(“”)方法 
–提供了集中的验证方法 
? validate(); 
–自动装载重新显示数据 
? 在验证中很有意义
? 定义FormBean 
–定义一个Form Bean 继承ActionForm 
–针对JSP页面中Form 表单的属性创建getter()、setter() 方法
例如:
public class LoginForm extends ActionForm{ 
public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { 
return super.validate(arg0, arg1); 

private String username="redking"; 
private String password; 
getter()…… 
setter()……
? 声明FormBean 
– 声明 <form-beans> 
<form-bean name="loginForm" type="com.amaker.struts.form.LoginForm"/> 
</form-beans> 
– name:formBean 的名称 
– type:formBean 的类全名
–和Action 关联在一起 
<action path="/login" 
type="com.amaker.struts.action.LoginAction" 
name="loginForm" 
input="/pages/login.jsp" 

–在Action的execute方法中使用 
public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response) throws Exception { 
// 强制类型转换 
LoginForm loginForm = (LoginForm)form; 
// 获得属性 
String userName = loginForm.getUserName(); 
return null; 
}
?从FormBean中获得请求参数 
public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response) throws 
Exception { 
// 强制类型转换 
LoginForm loginForm = (LoginForm)form; 
// 获得属性 
String userName = loginForm.getUserName(); 
return null; 
}
---------------------------传统方式获取表单数据------------------------
LoginAction.java
image
web.xml
image
struts-config.xml
image
login.jsp
image
测试:
image
image
image
-------------------------使用FormBean获取表单数据----------------------
LoginForm.java
image
struts-config.xml
image
LoginAction.java
image
测试:
image
image
image
-------------------------测试Scopes范围-----------------------------------
image
没加scope参数默认为Session范围
下面测试一下
TestFormBeanScope.jsp
image
测试:
login.jsp页面
image
TestFormBeanScope.jsp页面
image
从而验证了FormBean的Scope范围在Session范围内。
下面显式指定Scope范围
image
指定scope范围为request
image
请求完毕后就完事了现在没有值了哈~
image
那有没方法来实现呢?我们来让其跳转哈~
先来看下以前是怎么处理跳转滴~
image
测试:
image
request请求还没结束,现在username打印出来了哈~
image
下面看下struts是怎么配置哈~
struts-config.xml
image
LoginAction.java
image
测试:
image
实现跳转
image
------------------------NEXT------------------------------------
? 输出FormBean数据到页面 
–使用Struts 标签 
? <bean:write name="loginForm" property="userName"/> 
–name: form Bean 的名称(在struts-config.xml文件中声明的) 
–property: form Bean 的属性 
–使用表达式语言(EL) 
? ${loginForm.userName}
要想使用struts中的标签我们要导入TLD文件哈~
struts-1.3.8.rar\struts-1.3.8\src\taglib\src\main\resources\META-INF\tld
image
将这些标签库描述符导入到工程的lib目录下
image
测试:
image
效果还是一样滴~
image
------------------------------NEXT-------------------------------------
? 动态FormBean 
–意义
 
? 使用动态Bean的意义上减少Bean的个数 
–动态FormBean类 
? org.apache.struts.action.DynaActionForm 
–配置 <form-beans> 
<form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm"> 
<form-property name="username" type="java.lang.String"/> 
<form-property name="password" type="java.lang.String"/> 
</form-bean> 
</form-beans> 
–取值 
DynaActionForm loginForm = (DynaActionForm)f; 
String username = (String) loginForm.get("username"); 
String password = (String) loginForm.get("password");
 
LoginAction.java
image  struts-config.xml
image
测试:
看下动态FORMBEAN的效果
image 
效果一样哈~
image



本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/367106 ,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值