问题描述
我想问的是为什么用jstl就可以显示出值栈的内容?在以前用jstl的时候它是可以依次在request,session...中去查找的。但是struts2的值栈这个说法貌似是在el的用法之后才出现的呀。那为什么jstl还可以支持取出值栈的内容?是jstl重新改写了取出的机制?(貌似不大可能)还是内部做了什么处理?望各位赐教谢谢了!!!能有源码级别的说明就更好而来多谢各位
解决方案
解决方案二:
用jstl是怎么写的啊!
解决方案三:
LZ注意了,JSTL和struts的标签库不能嵌套使用的,一旦嵌套在一起使用,在页面中值栈是取不到的,以前我犯过该错误,哈哈..例子:<c:iftest="${!emptypm.list}"><c:forEachitems="${pm.list}"var="us"><trbgcolor="#EFF3F7"><tdalign="center">${us.id}</td><tdalign="center">${us.username}</td><tdalign="center">${us.password}</td><tdalign="center">${us.age}</td><td><ahref="removeUser.action?user.id=${us.id}">删除</a></td><td><ahref="updateP.action?user.id=${us.id}">更新</a></td></tr></c:forEach></c:if><c:iftest="${emptypm.list}"><tr><tdcolspan="5"align="center"bgcolor="#EFF3F7">没有找到相应的记录</td></tr></c:if>我犯的错误是在红色文字处,写成<%@taglibprefix="s"uri="/struts-tags"%>(事先已导入struts标签的支持)<td><s:ahref="removeUser.action?user.id=%{#us.id}">删除</s:a></td><td><s:ahref="updateP.action?user.id=%{#us.id}">更新</s:a></td>
解决方案四:
引用2楼luciferoffans的回复:
LZ注意了,JSTL和struts的标签库不能嵌套使用的,一旦嵌套在一起使用,在页面中值栈是取不到的,以前我犯过该错误,哈哈..例子:<c:iftest="${!emptypm.list}"><c:forEachitems="${pm.list}"var="us"><trbgcolor="#EFF3F7"><tdalign="center">${us.id}</t……
2L理解错我的意思了我在开发时候很少用s2的标签库,都是纯HTML的,我是问为什么jstl可以显示值栈的内容?
解决方案五:
1.action中定义name属性privateStringname="123";name有get/set方法,2.请求转发到页面.3.页面<s:pushvalue="name"><s:property/>//应该输出123,再换成jstl标签,看看是否是123</s:push>
解决方案六:
这个问题其实不应该说jstl为什么可以显示值栈的内容,而是你要知道jstl可以取出放在哪里的数据,而值栈的数据其实又放在哪里,这才是你应该关心的问题
解决方案七:
Struts框架把ValueStack对象保存在名为“struts.valueStack”的请求属性中,request中