开源框架Struts:FormBean滴那些事儿
来源:互联网 发布:java面试线程问题 编辑:程序博客网 时间:2024/06/07 03:18
? FormBean 的意义
? 定义FormBean
? 声明FormBean
?从FormBean中获得请求参数
? 输出FormBean数据到页面
? 动态FormBean
? 定义FormBean
? 声明FormBean
?从FormBean中获得请求参数
? 输出FormBean数据到页面
? 动态FormBean
----------------------------START--------------------------------
? FormBean 的意义
–“数据邮递员”
? 可以从页面到Action,或从Action到页面来传递数据
–获得请求参数
? 代替了request.getParameter(“”)方法
–提供了集中的验证方法
? validate();
–自动装载重新显示数据
? 在验证中很有意义
–“数据邮递员”
? 可以从页面到Action,或从Action到页面来传递数据
–获得请求参数
? 代替了request.getParameter(“”)方法
–提供了集中的验证方法
? validate();
–自动装载重新显示数据
? 在验证中很有意义
? 定义FormBean
–定义一个Form Bean 继承ActionForm
–针对JSP页面中Form 表单的属性创建getter()、setter() 方法
–定义一个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()……
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 的类全名
– 声明 <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;
}
<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;
}
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
web.xml
struts-config.xml
login.jsp
测试:
-------------------------使用FormBean获取表单数据----------------------
LoginForm.java
struts-config.xml
LoginAction.java
测试:
-------------------------测试Scopes范围-----------------------------------
没加scope参数默认为Session范围
下面测试一下
TestFormBeanScope.jsp
测试:
login.jsp页面
TestFormBeanScope.jsp页面
从而验证了FormBean的Scope范围在Session范围内。
下面显式指定Scope范围
指定scope范围为request
请求完毕后就完事了现在没有值了哈~
那有没方法来实现呢?我们来让其跳转哈~
先来看下以前是怎么处理跳转滴~
测试:
request请求还没结束,现在username打印出来了哈~
下面看下struts是怎么配置哈~
struts-config.xml
LoginAction.java
测试:
实现跳转
------------------------NEXT------------------------------------
? 输出FormBean数据到页面
–使用Struts 标签
? <bean:write name="loginForm" property="userName"/>
–name: form Bean 的名称(在struts-config.xml文件中声明的)
–property: form Bean 的属性
–使用表达式语言(EL)
? ${loginForm.userName}
–使用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
将这些标签库描述符导入到工程的lib目录下
测试:
效果还是一样滴~
------------------------------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");
–意义
? 使用动态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
struts-config.xml
测试:
看下动态FORMBEAN的效果
效果一样哈~
阅读全文
0 0
- 开源框架Struts:FormBean滴那些事儿
- 《开源框架那些事儿22》:UI框架设计实战
- 《开源框架那些事儿22》:UI框架设计实战
- 《开源框架那些事儿22》:UI框架设计实战
- struts的那些事儿
- struts formbean
- 《开源框架那些事儿21》:巧借力与借巧力
- 《开源框架那些事儿21》:巧借力与借巧力
- 《开源框架那些事儿21》:巧借力与借巧力
- 《开源框架那些事儿12》:框架2.0的设计梳理
- 学习SSM框架那些事儿
- Java日志框架那些事儿
- struts FormBean的用处
- 自定义formbean验证框架
- Hibernate级联那些事儿(JPA框架)
- 深入研究struts中的formbean
- Struts中FormBean内部验证
- struts学习笔记—FormBean
- 数据库优化——MySQL日志
- 04_第一个Java程序
- C++中临时对象及返回值优化
- ACPI---高级配置和电源管理接口(Advanced Configuration and Power Management Interface)
- 数组名和指针变量的差异
- 开源框架Struts:FormBean滴那些事儿
- 可能是全网最全的移动直播 trouble shooting 手册(5)——音画不同步
- libevent多线程
- React.js初探-如何将一个普通button改造成类React组件
- html选择器
- linux使用随用随记
- unity 游戏体围绕x,y,z轴进行转动
- JVM 内存模型和垃圾回收(五): Garbage-First
- 推荐算法之Jaccard相似度与Consine相似度