这台台式机链接笔记本电脑脑850值得吗

1、当类型是List时 Action中代码: List list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
ActionContext.getContext().put("list", list);
return SUCCESS; JSP中代码: 导入标签库: &%@ taglib prefix="s" uri="/struts-tags"%>用 Struts2的s标签:
迭代循环之后会将List集合中的String类型的数据一一显示在页面上。 2、当类型是List(User是实体类)时 Action中代码: List list= new ArrayList();ActionContext.getContext().put("list", list); 当User中有name、password等多个属性时,我们从数据库中查询取出多条记录,放入List集合中,然后传输到JSP并显示在页面上:
上面的代码同样需要导入标签库,也可以对显示的数据内容进行包装。 顺便提一下,当数据类型为Map集合时,实现代码与类型为List时类似,JSP用s标签根据Map集合中的key来取值:
最新教程周点击榜
微信扫一扫本帖子已过去太久远了,不再提供回复功能。问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
刚刚学习 struts2 ,在做一个图书展示的简单页面,问题如下:1.数据库里面有一个表 book ,有这四个字段: id,name,price,count ,有几条记录。2.我建立了一个 index.jsp 的页面用于登陆(已经成功),登陆后通过 struts.xml 跳转到 userindex.jsp 中。3.我建立了一个 action 叫做,用于读取所有的图书信息(数据库访问),里面建立了一个 list , 有 get 和 set 的方法。4.userindex.jsp 的页面是这样写的:
&s:iterator value="list" status="st"&
&td&&s:property value="id"/&&/td&
&td&&s:property value="name"/&&/td&
&td&&s:property value="price"/&&/td&
&td&&s:property value="count"/&&/td&
/s:iterator
现在 userindex.jsp 什么也没有现在的问题是,我刚学 struts2 ,知道需要 action 来处理逻辑,可是如何把 BookInfoAction 和 userindex.jsp 结合起来, 我已经实现了登陆功能,是配置 struts.xml 中
&action name="login" class="shopping.LoginAction" method="login"&
&result name="loginout"&helloworld.jsp&/result&
&result name="loginin" type="redirect"&userindex.jsp&/result&
可是我怎么把这个展示图书的页面和 我的 action 结合起来呢? 我如何才能做到登陆成功之后的页面( userindex.jsp )里面就可以直接显示所有的图书呢?
我一定是落下了什么步骤,这个我也是知道的,可是我搜了资料看了教程都没有提及,希望大家帮助我,谢谢!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
&result name="loginin" type="redirect"&这个地方是要redirect的action名字&/result&
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App下次自动登录
现在的位置:
& 综合 & 正文
关于jsp页面通过el表达式访问struts2值栈的问题
之前用ssh框架,在action中总是将查询出的数据存到session或者request中,然后传到前台进行显示;但后来我看到有些 在action中声明一个list或者其他的成员变量,然后将查询到的数据赋给这个成员变量,然后再jsp页面通过${list}或者 ${变量名} 就可以在前台显示了。之前一直不明白,经过查阅资料,这样做可行的原因:
用JSTL的${tip}可以访问Action中定义tip属性:private String tip,
${tip}实际上是访问的request作用域中的tip,实际是调用了action中的getTip()方法,所以能访问。
然后Struts2是把值栈保存在 request 中的。你可以通过 request.getAttribute( "struts.valueStack" ); 得到它。
经过我的分析研究,结论如下:其实数据是被存放在requestContext中的,而request对象及其session等对象又被放入了ActionContext中,通过ognl表达式是从ActionContext中获取requestContext里面存放的对象,而用jstl是直接从request中获取对象
即:用jstl是直接获取,而用ognl是间接的从ActionContext中获取request对象中的数据
ActionContext的解释如下:ActionContext中包含了大量的环境信息,包括:Locale、Application、Session、ValueStack等等。
查看该类源码,发现它装饰了getAttribute()方法:
Object getAttribute(String s) {
(s != null
&& s.startsWith("javax.servlet")) {
super.getAttribute(s);
ActionContext ctx = ActionContext.getContext();
Object attribute =
super.getAttribute(s);
alreadyIn = false;
Boolean b = (Boolean) ctx.get("__requestWrapper.getAttribute");
(b != null) {
alreadyIn = b.booleanValue();
(!alreadyIn && attribute == null
&& s.indexOf("#") == -1) {
ctx.put("__requestWrapper.getAttribute", Boolean.TRUE);
ValueStack stack = ctx.getValueStack();
(stack != null) {
attribute = stack.findValue(s);
ctx.put("__requestWrapper.getAttribute", Boolean.FALSE);
EL能访问到值栈中的内容。
之所以能访问到,是因为EL可以访问request的getAttribute()方法,而此方法被Sturts2进行了装饰,可以访问到ActionContext,进而可以访问到值栈。
总结一下:
为什么JSTL可以访问Action中的属性,如:
public String getTip(){
return this.
在JSP页面中可用${tip}访问到tip属性。
总结一下答案:
①JSTL能访问Action中通过request.setAttribute("")设置的值。这是大家所熟悉的。
②JSTL能访问Action中属性(通过getXXX方法实现访问)。
因为ValueStack存在于request,所以用${tip}访问时的顺序是:request先访问ValueStack,ValueStack从中找出tip对应的值。
&&&&推荐文章:
【上篇】【下篇】类似问题 &
JAVA Web开发 &&&&最新内容
JAVA Web开发 &&&&相关内容

我要回帖

更多关于 笔记本电脑接台式主机 的文章

 

随机推荐