前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(15)Struts2_OGNL读取Object栈

(15)Struts2_OGNL读取Object栈

作者头像
qubianzhong
发布2018-09-19 13:06:56
4380
发布2018-09-19 13:06:56
举报
文章被收录于专栏:行者常至行者常至

Struts2_OGNL

利用 s:property 标签和 OGNL 表达式来读取值栈中的属性值
1). 值栈中的属性值:
  • 对象栈: 对象栈中某一个对象的属性值
  • Map 栈: request, session, application 的一个属性值 或 一个请求参数的值.

读取对象栈中对象的属性:

1.若想访问 Object Stack 里的某个对象的属性. 可以使用以下几种形式之一:
  • object.propertyName ; object[‘propertyName’] ; object[“propertyName”]
2.ObjectStack 里的对象可以通过一个从零开始的下标来引用. ObjectStack 里的栈顶对象可以用 [0] 来引用, 它下面的那个对象可以用 [1] 引用.
  • [0].message
  • 若在指定的对象里没有找到指定的属性, 则到指定对象的下一个对象里继续搜索. 即 [n] 的含义是从第 n 个开始搜索, 而不是只搜索第 n 个对象
3.若从栈顶对象开始搜索, 则可以省略下标部分: message
  • 结合 s:property 标签: <s:property value="[0].message" /> <s:property value="message" />


默认情况下, Action 对象会被 Struts2 自动的放到值栈的栈顶.


编码:

同时借用helloworld中的代码:
Show.jsp
代码语言:javascript
复制
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
        <s:debug></s:debug>
      ID:${id}<br>
          编号:${ dlh}<br>
       姓名:${ name}<br>
       部门:${ bmmc}<br>
      name:<%=request.getAttribute("name") %><br>
      name:<s:property value="name"/><br>
      name[0]:<s:property value="[0].name"/><br>
  </body>
</html>
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述
此时我们在action方法中手动压入一个对象:

GG_CZY.java
代码语言:javascript
复制
    public String save() {
        if(this.id==null){
            this.id = UUID.randomUUID().toString().replace("-", "");
        }

        //1.获取值栈
        ValueStack stack = ActionContext.getContext().getValueStack();

        //2.给新对象复制
        GG_CZY czy = new GG_CZY();
        czy.setName("王小二");
        czy.setBmmc("放牛");

        //3将新对象压入值栈中
        stack.push(czy);

        return "save";
    }

Show.jsp

代码语言:javascript
复制
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
        <s:debug></s:debug>
      ID:${id}<br>
          编号:${ dlh}<br>
       姓名:${ name}<br>
       部门:${ bmmc}<br>
      name:<%=request.getAttribute("name") %><br>
      name:<s:property value="name"/><br>
      name[0]:<s:property value="[0].name"/><br>
      name[1]:<s:property value="[1].name"/><br>
  </body>
</html>

这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

注意事项
这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Struts2_OGNL
    • 利用 s:property 标签和 OGNL 表达式来读取值栈中的属性值
      • 1). 值栈中的属性值:
      • 读取对象栈中对象的属性:
        • 1.若想访问 Object Stack 里的某个对象的属性. 可以使用以下几种形式之一:
          • 2.ObjectStack 里的对象可以通过一个从零开始的下标来引用. ObjectStack 里的栈顶对象可以用 [0] 来引用, 它下面的那个对象可以用 [1] 引用.
            • 3.若从栈顶对象开始搜索, 则可以省略下标部分: message
            • 默认情况下, Action 对象会被 Struts2 自动的放到值栈的栈顶.
            • 编码:
              • 同时借用helloworld中的代码:
                • Show.jsp
                  • 此时我们在action方法中手动压入一个对象:
                    • GG_CZY.java
                      • 注意事项
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档