歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Struts2學習筆記-Value Stack(值棧)和OGNL表達式

Struts2學習筆記-Value Stack(值棧)和OGNL表達式

日期:2017/3/1 9:27:02   编辑:Linux編程

只是本人的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()"/>

其余的用法,看下面這張圖,就不一一總結了。這個圖是視頻中截下來的,以後有問題了來看看,查查,應該就會使用了。

struts2文件上傳(保存為BLOB格式) http://www.linuxidc.com/Linux/2014-06/102905.htm

Struts2的入門實例 http://www.linuxidc.com/Linux/2013-05/84618.htm

Struts2實現ModelDriven接口 http://www.linuxidc.com/Linux/2014-04/99466.htm

遇到的Struts2文件下載亂碼問題 http://www.linuxidc.com/Linux/2014-03/98990.htm

Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm

Struts2 注解模式的幾個知識點 http://www.linuxidc.com/Linux/2013-06/85830.htm

Struts 的詳細介紹:請點這裡
Struts 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved