我是靠谱客的博主 缓慢灰狼,最近开发中收集的这篇文章主要介绍struts2 页面取值_Struts2 | 详解如何在jsp页面中获取值栈中的数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上一篇文章我们已经了解了如何在struts2的值栈中存数据,那么这篇文章我们就一起来了解一下如何在jsp页面中获取值栈中的数据。

1 获取使用set方法存入值栈中的值

在上一篇文章中我们已经了解到,使用set方法向值栈中存值,使用的是map方式,那么就有key和value,取值时我们只需根据key来取就可以了。

代码演示如下:

首先我们使用set方法向值栈中存入一个值,关键代码:

//1 获取值栈对象

ActionContext context = ActionContext.getContext();

ValueStack stack = context.getValueStack();

//2 调用值栈对象中的set方法

stack.set("demo", "DemoData");

return "success";

然后我们在jsp页面中使用struts标签获取值栈中的这条数据,关键代码:

2 获取使用push方式存入值栈中的值

由上一篇文章可知,push方式存值是没有map结构的,那么没有key,我们如何取值呢?事实上struts2中将push方法存入值栈中的值都放在一个名为top的集合中,那么我们只需利用这个集合便可获取到其中的值

代码示例:

首先我们还是先用push方法将数据放入到值栈中去,关键代码:

//1 获取值栈对象

ActionContext context = ActionContext.getContext();

ValueStack stack = context.getValueStack();

//2 调用值栈对象中的push方法

stack.push("abcd");

return "success";

然后在jsp页面中获取值栈中的值,关键代码:

这里需要特别注意jsp页面中使用ognl表达式获取list集合中元素的写法,不是 top[0] 而是 [0].top ,和我们在java代码中取list集合元素的写法是有区别的。

3 获取使用变量的get方法存入值栈中的值

这是往值栈中存值最常用的方法,这里我们将其分为取字符串,取对象和取list集合三种方式分别演示。

1 获取get方式存入值栈中的字符串

首先我们先使用变量方法存入一个字符串到值栈中,关键代码:

private String username;

public String getUsername(){

return username;

}

public String execute() throws Exception {

username = "demo";

retrun "success";

}

然后我们在jsp页面中获取这个字符串的值,关键代码:

2 获取get方式存入值栈中的对象

首先将对象存入到值栈中去,关键代码:

private User user = new User();

public User getUser(){

return user;

}

public String execute() throws Exception {

user.setUsername("demo");

user.setPassword(123456);

user.setAddress("beijing");

return "success";

}

然后在jsp页面中获取这个对象,关键代码:

3 获取get方式存入值栈中的list集合

首先将list集合存入值栈,关键代码:

private List list = new ArrayList();

public List getList() {

return list;

}

public String execute() throws Exception {

User user1 = new User();

user1.setUsername("小奥");

user1.setPassword("123");

user1.setAddress("美国");

User user2 = new User();

user2.setUsername("小王");

user2.setPassword("250");

user2.setAddress("越南");

list.add(user1);

list.add(user2);

return "success";

}

然后在jsp页面中获取list中的数据,在jsp中获取值栈中的list有三种方式,下面我们分别演示,关键代码:

获取list的值第一种方式:

获取list的值第二种方式:

获取list的值第三种方式:

这里第一和第二种方法都比较好理解,第三种方法需要注意的地方在:在s:iterator 标签时如果使用了var属性,那么struts2会在值栈的context部分新开辟一个临时空间,并将遍历出来的list集合中的元素放到这个临时空间中,那么这时候再使用ognl表达式获取数据要使用#号,否则无法取出数据。

这样可以避免浪费root部分的空间,加快检索的速度,因为我们通常操作数据都是操作root部分。

总结:

以上就是在jsp页面中取出值栈中值的几种办法,其中以第三中方法最常用,每种方法最好都要掌握,灵活运用即可。

最后

以上就是缓慢灰狼为你收集整理的struts2 页面取值_Struts2 | 详解如何在jsp页面中获取值栈中的数据的全部内容,希望文章能够帮你解决struts2 页面取值_Struts2 | 详解如何在jsp页面中获取值栈中的数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部