zoukankan      html  css  js  c++  java
  • struts2 中 form-action action-form 的传参方式

    1.  struts2 Action获取表单提交数据

        主要有三种方式:

    1.1 使用ActionContext类

    //获取actionContext对象
    ActionContext context = ActionContext.getContext();
    Map<String, Object> map = context.getParameters();
    
    Set<String> keys = map.keySet();
    for (String key : keys) {
    Object[] obj = (Object[]) map.get(key);
    //数组形式:因为输入项里面可能有复选框的情况
    System.out.println(Arrays.toString(obj));
    
    }
    View Code


    1.2. 使用ServletActionContext类

     

    HttpServletRequest request = ServletActionContext.getRequest();
    String username = request.getParameter("username");
    View Code

    1.3. 使用接口注入方式

    public class LoginAction extends ActionSupport implements ServletRequestAware{
    private HttpServletRequest request;
    public void setServletRequest(HttpServletRequest request) {
    // TODO Auto-generated method stub
    this.request = request;
    }
    @Override
    public String execute() throws Exception {
    String username = request.getParameter("username");
    return super.execute();
    }
    View Code

    2. 在action中操作域对象

    Struts2封装获取表单数据方式

    1.1  原始方式获取表单封装到实体类对象

    1.2 属性封装(会用)

    1.3 模型驱动封装(重点)

    1.4 表达式封装(会用)

     

    比较表达式封装和模型驱动封装

    1 使用表达式封装和模型驱动封装都可以把数据封装到实体类对象里面

    2 不同点:

    1)使用模型驱动只能把数据封装到一个实体类对象里面

    - 在一个action里面不能使用模型驱动把数据封装到不同的实体类对象里面

    2)使用表达式封装可以把数据封装到不同的实体类对象里面

    1.5 封装到集合里面

     

     在表单中取出集合元素的第一种方式

    在表单中取出集合元素的第二种方式

    在表单中取出集合元素的第三种方式

     

    1.6 封装数据到Map集合

     

        获取值栈对象

    1)每次访问action时候,都会创建action对象,

    2)在每个action对象里面都会有一个值栈对象(只有一个)

    1 值栈分为两部分:

    第一部分 root,结构是list集合

    1)一般操作都是root里面数据

    第二部分 context,结构map集合

        向值栈放数据

    第一种 获取值栈对象,调用值栈对象里面的 set 方法

    第二种 获取值栈对象,调用值栈对象里面的  push方法

    向值栈放对象

    向值栈放list集合

     

    从值栈获取数据

     

    获取对象

     

    其他操作

    1 使用set方法向值栈放数据,获取

     

    2 使用push方法向值栈放数据,获取

    request域放值

    1 struts2标签中表单标签

    1)在struts2标签里面使用ognl表达式,如果直接在struts2表单标签里面使用ognl表达式不识别,只有%之后才会识别。

    案例-列表功能改造(值栈)



  • 相关阅读:
    NoteExpress 自定义参考文献输出样式
    Gabor学习笔记
    智能电视,谁的电视?谁的智能?
    智能手表的未来:独立还是附属,这是个问题!
    罗技Setpoint控制酷狗等第三方播放器
    Python中pip的SSL异常
    解决ArcPy脚本工具中文乱码问题
    文件夹exe病毒的清理
    WinRAR解压提示压缩包损坏
    网络数据集不能重命名
  • 原文地址:https://www.cnblogs.com/zhulina-917/p/11634036.html
Copyright © 2011-2022 走看看