溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Struts2中的值堆棧怎么表示

發(fā)布時(shí)間:2022-09-29 11:05:48 來(lái)源:億速云 閱讀:91 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Struts2中的值堆棧怎么表示”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Struts2中的值堆棧怎么表示”文章吧。

在 struts 2 中,ValueStack 表示一個(gè)Java堆棧,其中包含應(yīng)用程序特定對(duì)象的引用。當(dāng)請(qǐng)求到來(lái)時(shí),首先創(chuàng)建一個(gè) ValueStack 對(duì)象,然后創(chuàng)建 Action、Model 或任何其他 java 資源的對(duì)象。所有這些對(duì)象的引用都保存在 ValueStack 中。

注意:ValueStack 中的對(duì)象可用于 UI 頁(yè)面上的響應(yīng)。ValueStack 在這個(gè)過(guò)程中使用 OGNL。

ValueStack 的主要部分:

對(duì)象堆棧:用于包含對(duì)象的引用。

上下文映射:它包含請(qǐng)求參數(shù)、請(qǐng)求屬性、會(huì)話屬性和應(yīng)用程序?qū)傩缘扔成洹?/p>

ValueStack接口常用方法:

1. findValue(String expr):通過(guò)對(duì)指定表達(dá)式求值來(lái)找到一個(gè)值。

句法:

公共對(duì)象 findValue(String expr)

2. findString(String expr):通過(guò)對(duì)指定表達(dá)式求值來(lái)查找字符串。

句法:

公共字符串 findString(String expr)

3. peek():給出棧頂?shù)膶?duì)象,不將其從棧中移除。

句法:

公共對(duì)象 peek()

4. pop():給出棧頂?shù)膶?duì)象并將其從棧中移除。

句法:

公共對(duì)象彈出()

5. push(Object o):將指定的對(duì)象放到棧頂。

句法:

公共無(wú)效推送(對(duì)象o)

6. set(String key, Object value):用指定的key在棧上設(shè)置一個(gè)對(duì)象。它可以使用 findValue(key) 檢索。

句法:

公共無(wú)效集(字符串鍵,對(duì)象值)

7. size():它給出了編號(hào)。堆棧中的對(duì)象。

句法:

公共整數(shù)大?。ǎ?/pre>

例子:

登錄.jsp

<% @taglib uri = "/struts-tags" prefix = "s" %> < html > 
	< head > 
		< title > Struts 2 ValueStack 示例</ title > 
	</ head > 
	< body > 
		< h3 >這是一個(gè)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)度員。吳。
        	過(guò)濾器。StrutsPrepareAndExecuteFilter 
        </過(guò)濾器-類(lèi)> 
	</過(guò)濾器> 
	< 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" > 
<支柱>

	<包名稱(chēng)= “用戶(hù)” 擴(kuò)展= “struts-default” > 
		<操作名稱(chēng)= “歡迎” 
		          類(lèi)= “com.w3spoint.action.Login” > 
			<結(jié)果名稱(chēng)= “成功” >/歡迎。jsp </結(jié)果> 
		</動(dòng)作> 
	</包> </支柱>

登錄.java

導(dǎo)入 java.util.HashMap ;
導(dǎo)入 java.util.Map ;
導(dǎo)入 com.opensymphony.xwork2.ActionContext ;
導(dǎo)入 com.opensymphony.xwork2.util.ValueStack ; 
/**
 * 此類(lèi)用作動(dòng)作類(lèi)。
 */ public  class Login { 
	//數(shù)據(jù)成員
	private  String userName ; 
	//業(yè)務(wù)邏輯
	public  String execute ( ) { 
		ValueStack stack =  
			ActionContext. 獲取上下文()。獲取值棧();		Map < String , Object > context =  
			new HashMap < String , Object > ( ) ; 
	  	語(yǔ)境。put ( "value1" , new  String ( "第一個(gè)值" ) ) ;  
	  	語(yǔ)境。put ( "value2" , new  String ( "第二個(gè)值" ) ) ; 
	  	堆。推(上下文);
		返回 “成功” ;	
	}	 
	//getter setter 
	public  String getUserName ( )  { 
		return userName ; 
	} 
	public  void setUserName ( String userName )  {
		這個(gè)。用戶(hù)名 =用戶(hù)名;
	} 
}

歡迎.jsp

<% @taglib uri = "/struts-tags" prefix = "s" %> < html > 
	< head > 
		< title > Struts 2 ValueStack 示例</ title > 
	</ head > 
	< body > 
		< h3 >這是一個(gè)ValueStack例子。</ h3 > 
		< h5 >用戶(hù)名: < s : property value = "userName"  /></ h5 > 
		< h5 > Value1 :  < s : property value = "value1"  /></ h5 > 
		< h5 > Value2 :  < s : property value = "值2"  /></ h5 > 
	</正文> </ html >

輸出:

Struts2中的值堆棧怎么表示

輸入用戶(hù)名

Struts2中的值堆棧怎么表示

點(diǎn)擊你好按鈕

Struts2中的值堆棧怎么表示

以上就是關(guān)于“Struts2中的值堆棧怎么表示”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI