向值栈放数据多种方式
1、第一种,获取值栈对象,调用值栈对象里面的set方法
2、第二种,调用值栈对象里面的push方法
3、第三种,在action定义变量,生成变量的get方法(常用方法)
- 下面我们来一一用代码实现:
实现第一种方式:
我们还是用debug来看,那么第一步就是配置xml,这里的配置与上节课的一模一样,其实就是在上节课的基础上写的
<action name="valueStackDemo1" class="com.manman.xm.ValueStackDemoAction">
<result name="success">/value.jsp</result>
</action>
这样就配置好了xml,接下来就是使用值栈里面的set方式:
public String execute() throws Exception {
//第一种方式使用值栈对象里面的set方式
//1获取值栈对象
ActionContext context = ActionContext.getContext();
ValueStack stack = context.getValueStack();
//2调用方法set方法
stack.set("username", "manman");
return "success";
}
来看运行结果:
image.png
明显比之前多了一个元素,说明放进去了值。、
实现第二种方式:
代码如下:
//1获取值栈对象
ActionContext context = ActionContext.getContext();
ValueStack stack = context.getValueStack();
//2调用方法set方法
stack.set("username", "manman");
//3调用方法push方法
stack.push("abcd");
运行结果如下:
image.png
明显在第一种的基础之上,又多了一个元素,因为我们栈的特点是先进后出,所以get方法的元素应该在上面,set在下。
实现第三种方式:
//1定义变量
private String name;
//2生成变量的get方法
public String getName() {
return name;
}
@Override
public String execute() throws Exception {
//在执行的方法里面向变量设置值
name="abcd";
return "success";
image.png
这个可以节省空间浪费,不需要重新给一个新的空间,值就直接在action里面。
网友评论