Struts2学习记录-Value Stack(值栈)和OGNL表达式

只是学习记录,把我知道的都说出来

一,值栈的作用

记录处理当前请求的action的数据。

二,小例子

有两个action:Action1和Action2
Action1有两个属性:name和passwd
Action2有两个属性:name2和passwd2
请求从Action1进入,chain方法导向Action2
Struts.xml配置信息:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="action1" class="com.geekgao.action.Action1">
            <result type="chain">
                <param name="actionName">action2</param>
            </result>
        </action>

        <action name="action2" class="com.geekgao.action.Action2">
            <result>
                /welcome.jsp
            </result>
        </action>
    </package>
</struts>

welcome.xml:

<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
    name:<s:property value="name"/><br>
    passwd:<s:property value="passwd"/><br>
    locale:<s:property value="locale"/>
    <s:debug></s:debug>
</body>
</html>

三,访问

访问的路径:http://localhost:8080/Struts2OGNL/action1?name=nn&passwd=pp
Struts2OGNL是项目名称
下面是值栈截图:
值栈
注意到,我们连接中给了的值都已经出现在值栈中了,即name和passwd。还有我们发现这明显是一个栈,谁先调用谁在下面,当我们取值的时候,是从栈顶开始向下搜索,首先找到的那个值就是最终结果。

jsp中取值的方法:

name:<s:property value="name"/><br>
passwd:<s:property value="passwd"/><br>
locale:<s:property value="locale"/>

根据名称取值,value是OGNL表达式,即对象图形导航语言,就是根据这个表达式找到一个对象。
如果一个对象的属性有一个类,例如User user,User有name和passwd属性,那么可以这样传参:
http://localhost:8080/Struts2OGNL/action1?user.name=nn&user.passwd=pp
并且可以这样取值:

name:<s:property value="user.name"/><br>
passwd:<s:property value="user. passwd"/><br>
locale:<s:property value="locale"/>

当然,还可以直接用对象调用方法,例如下面的代码:

<s:property value="user.toString()"/>

其余的用法,看下面这张图,就不一一总结了。这个图是视频中截下来的,以后有问题了来看看,查查,应该就会使用了。
OGNL表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值