zoukankan      html  css  js  c++  java
  • Struts从后台向前台传递数据

    写在前面,在action中对实例化的对象,要有get、set方法,在前台就可以通过struts标签来取得数据。

    -----------------------------------------------------------------------转-------------------------------------------------------------

    不是action传值到jsp页面,而是jsp页面获取action中的属性值,或者范围(如request,session,application等)里的值。所以,有两种方法1,获取的是action属性的值,用struts2标签和ognl即可获取如,<s:property  value="属性名.属性名。。。"/> 这种形式2,获取的是范围内的值直接使用EL表达式如${name}为requestScope范围绑定的名为name的属性,省略requestScope因为这是默认的范围${sessionScope.name}为sessionScope范围绑定的名为name的属性

    
    
    
    1
    2
    3
    4
    5
    6
    7
    1)action定义getPersons()  
    2)Person中定义getName()和getAge()  
    3):  
    <s:iterator id="u" value="persons">  
     <s:property value='#u.getName()'/>  
     <s:property value='#u.getAge()'/>  
    </s:iterator>
    总结来说是2中方式:如下 
    1、一般是在Action中定义一个成员变量,然后对这个成员变量提供get/set方法,在JSP页面就可以取到这个变量的值了。
      1)在Action中定义成员变量
    //定义一个成员变量 
    private String message; 
          
    //提供get/set方法 
    public String getMessage() { 
        return message; 
    } 
    public void setMessage(String message) { 
        this.message = message; 
    }
     2)在JSP页面中取值
    ${message} 
    或者 
    <s:property value="message"/>
    2、但是定义的成员变量多了,感觉整个Action的代码就很长了。这个时候可以使用一些Servlet API进行值的存取操作:HttpServletRequest、HttpSession和ServletContext。Struts2对这个三个对象用Map进行了封装,我们就可以使用Map对象来存取数据了。
      1)在Action中存值
    ActionContext actionContext = ActionContext.getContext(); 
              
    //get HttpServletRequest 
    Map<String,Object> request = (Map) actionContext.get("request"); 
    request.put("a", "a is in request"); 
              
    //get HttpSession 
    //Map<String,Object> session = (Map) actionContext.get("session"); 
    Map<String,Object> session = actionContext.getSession(); 
    session.put("b", "b is in session"); 
              
    //get ServletContext 
    //Map<String,Object> application  = (Map) actionContext.get("application"); 
    Map<String,Object> application  = actionContext.getApplication(); 
    application.put("c", "c is in application");
     2)在JSP页面上取值
    ${a} 
    ${b} 
    ${c} 
    or               
    ${requestScope.a} 
    ${sessionScope.b} 
    ${applicationScope.c}
  • 相关阅读:
    ajax专题
    luogu P1346 电车 最短路
    luogu P1462 通往奥格瑞玛的道路 最短路
    luogu P1328 生活大爆炸版石头剪刀布
    luogu P1315 联合权值 枚举
    luogu P1156 垃圾陷阱 背包问题
    luogu P1217 回文质数 枚举
    luogu P3650 滑雪课程设计 枚举
    luogu1209 修理牛棚 贪心
    luogu P1223 排队接水 贪心
  • 原文地址:https://www.cnblogs.com/huangshijie/p/4018679.html
Copyright © 2011-2022 走看看