更新時間:2022-06-22 10:45:31 來源:動力節點 瀏覽1049次
在 struts 2 中,ValueStack 表示一個Java堆棧,其中包含應用程序特定對象的引用。當請求到來時,首先創建一個 ValueStack 對象,然后創建 Action、Model 或任何其他 java 資源的對象。所有這些對象的引用都保存在 ValueStack 中。
注意:ValueStack 中的對象可用于 UI 頁面上的響應。ValueStack 在這個過程中使用 OGNL。
對象堆棧:用于包含對象的引用。
上下文映射:它包含請求參數、請求屬性、會話屬性和應用程序屬性等映射。
1. findValue(String expr):通過對指定表達式求值來找到一個值。
句法:
公共對象 findValue(String expr)
2. findString(String expr):通過對指定表達式求值來查找字符串。
句法:
公共字符串 findString(String expr)
3. peek():給出棧頂的對象,不將其從棧中移除。
句法:
公共對象 peek()
4. pop():給出棧頂的對象并將其從棧中移除。
句法:
公共對象彈出()
5. push(Object o):將指定的對象放到棧頂。
句法:
公共無效推送(對象o)
6. set(String key, Object value):用指定的key在棧上設置一個對象。它可以使用 findValue(key) 檢索。
句法:
公共無效集(字符串鍵,對象值)
7. size():它給出了編號。堆棧中的對象。
句法:
公共整數大小()
登錄.jsp
<% @taglib uri = "/struts-tags" prefix = "s" %>
< html >
< head >
< title > Struts 2 ValueStack 示例</ title >
</ head >
< body >
< h3 >這是一個ValueStack例子。</ h3 >
< s : form action = "welcome" >
< s : textfield name = "userName" label = "UserName" />
< s :提交值= "Hello" align = "center" />
</ s : form >
</正文>
</ html >
web.xml
<? xml 版本= "1.0"編碼= "UTF-8" ?>
< web -應用程序版本= "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns : xsi = "http: //www.w3.org/2001/XMLSchema-instance"
xsi : schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
< filter >
< filter - name > struts2 </ filter - name >
< filter - class >
org. 阿帕奇_ 支柱2。調度員。吳。
過濾器。StrutsPrepareAndExecuteFilter
</過濾器-類>
</過濾器>
< filter - mapping >
< filter - name > struts2 </ filter - name >
< url - pattern > /*</url-pattern>
</filter-mapping>
<歡迎文件列表>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts.xml
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
<支柱>
<包名稱= “用戶” 擴展= “struts-default” >
<操作名稱= “歡迎”
類= “com.w3spoint.action.Login” >
<結果名稱= “成功” >/歡迎。jsp </結果>
</動作>
</包>
</支柱>
登錄.java
導入 java.util.HashMap ;
導入 java.util.Map ;
導入 com.opensymphony.xwork2.ActionContext ;
導入 com.opensymphony.xwork2.util.ValueStack ;
/**
* 此類用作動作類。
*/
public class Login {
//數據成員
private String userName ;
//業務邏輯
public String execute ( ) {
ValueStack stack =
ActionContext. 獲取上下文()。獲取值棧();
Map < String , Object > context =
new HashMap < String , Object > ( ) ;
語境。put ( "value1" , new String ( "第一個值" ) ) ;
語境。put ( "value2" , new String ( "第二個值" ) ) ;
堆。推(上下文);
返回 “成功” ;
}
//getter setter
public String getUserName ( ) {
return userName ;
}
public void setUserName ( String userName ) {
這個。用戶名 =用戶名;
}
}
歡迎.jsp
<% @taglib uri = "/struts-tags" prefix = "s" %>
< html >
< head >
< title > Struts 2 ValueStack 示例</ title >
</ head >
< body >
< h3 >這是一個ValueStack例子。</ h3 >
< h5 >用戶名: < s : property value = "userName" /></ h5 >
< h5 > Value1 : < s : property value = "value1" /></ h5 >
< h5 > Value2 : < s : property value = "值2" /></ h5 >
</正文>
</ html >
輸出:
輸入用戶名
點擊你好按鈕
以上就是關于“Struts2中的值堆棧”介紹,大家如果對此比較感興趣,想了解更多相關知識,不妨來關注一下動力節點的Struts2視頻教程,里面的課程內容細致全面,通俗易懂,很適合沒有基礎的小白學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習