zoukankan      html  css  js  c++  java
  • 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表达式

  • 相关阅读:
    JS-Date日期内置对象
    JS-string内置对象
    MyBatis的事务处理
    MyBatis的简单操作
    MyBatis第一个项目示例
    CSS-盒子模型
    百分比布局的使用
    使用TabLayout快速实现一个导航栏
    彻底理解android中的内部存储与外部存储
    Eclipse的LogCat总是自动清空怎么办?
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8669188.html
Copyright © 2011-2022 走看看