? 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 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
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————————————
环境不会改变,解决之道在于改变自己。