这篇“Struts2中的值堆栈怎么表示”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Struts2中的值堆栈怎么表示”文章吧。
在 struts 2 中,ValueStack 表示一个Java堆栈,其中包含应用程序特定对象的引用。当请求到来时,首先创建一个 ValueStack 对象,然后创建 Action、Model 或任何其他 java 资源的对象。所有这些对象的引用都保存在 ValueStack 中。
注意:ValueStack 中的对象可用于 UI 页面上的响应。ValueStack 在这个过程中使用 OGNL。
ValueStack 的主要部分:
对象堆栈:用于包含对象的引用。
上下文映射:它包含请求参数、请求属性、会话属性和应用程序属性等映射。
ValueStack接口常用方法:
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中的值堆栈怎么表示”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注天达云行业资讯频道。