更新時間:2022-06-22 10:45:31 來源:動力節(jié)點 瀏覽1399次
在 struts 2 中,ValueStack 表示一個Java堆棧,其中包含應(yīng)用程序特定對象的引用。當(dāng)請求到來時,首先創(chuàng)建一個 ValueStack 對象,然后創(chuàng)建 Action、Model 或任何其他 java 資源的對象。所有這些對象的引用都保存在 ValueStack 中。
注意:ValueStack 中的對象可用于 UI 頁面上的響應(yīng)。ValueStack 在這個過程中使用 OGNL。
對象堆棧:用于包含對象的引用。
上下文映射:它包含請求參數(shù)、請求屬性、會話屬性和應(yīng)用程序?qū)傩缘扔成洹?/p>
1. findValue(String expr):通過對指定表達式求值來找到一個值。
句法:
公共對象 findValue(String expr)
2. findString(String expr):通過對指定表達式求值來查找字符串。
句法:
公共字符串 findString(String expr)
3. peek():給出棧頂?shù)膶ο?,不將其從棧中移除?/p>
句法:
公共對象 peek()
4. pop():給出棧頂?shù)膶ο蟛⑵鋸臈V幸瞥?/p>
句法:
公共對象彈出()
5. push(Object o):將指定的對象放到棧頂。
句法:
公共無效推送(對象o)
6. set(String key, Object value):用指定的key在棧上設(shè)置一個對象。它可以使用 findValue(key) 檢索。
句法:
公共無效集(字符串鍵,對象值)
7. size():它給出了編號。堆棧中的對象。
句法:
公共整數(shù)大小()
登錄.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 -應(yīng)用程序版本= "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。調(diào)度員。吳。
過濾器。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” >
<結(jié)果名稱= “成功” >/歡迎。jsp </結(jié)果>
</動作>
</包>
</支柱>
登錄.java
導(dǎo)入 java.util.HashMap ;
導(dǎo)入 java.util.Map ;
導(dǎo)入 com.opensymphony.xwork2.ActionContext ;
導(dǎo)入 com.opensymphony.xwork2.util.ValueStack ;
/**
* 此類用作動作類。
*/
public class Login {
//數(shù)據(jù)成員
private String userName ;
//業(yè)務(wù)邏輯
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 >
輸出:

輸入用戶名

點擊你好按鈕

以上就是關(guān)于“Struts2中的值堆棧”介紹,大家如果對此比較感興趣,想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點的Struts2視頻教程,里面的課程內(nèi)容細致全面,通俗易懂,很適合沒有基礎(chǔ)的小白學(xué)習(xí),希望對大家能夠有所幫助哦。