• 开源框架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
    -------------------------------END----------------------------------

    本文出自 “王乾De技术Blog[爱生活..” 博客,谢绝转载!

  • 相关阅读:
    asp.net(C#)页面事件顺序
    C#多线程学习 之 线程池[ThreadPool]
    JS 获取浏览器窗口大小
    关于Json的那点事
    jquery 动态滚动
    Null,DBNull,String.Empty 区别 C# 转载
    js图片大小限制,设置
    mysql 自定义函数获取两点间距离
    KindleConverter:Word批量转换为6寸PDF
    在 Asp.NET MVC 中使用 SignalR 实现推送功能
  • 原文地址:https://www.cnblogs.com/zhouwenwu/p/2336964.html
Copyright © 2020-2023  润新知