struts2里面怎么用el表达式取值

cyc123007512 2010-01-22 04:04:35
用户登录时候,在java里面保存用户账号如下:
request.getSession().setAttribute("adminid", str);

在jsp页面取值:
<s:hidden name="adminid" value="#request.adminid"></s:hidden>
<s:hidden name="adminid" value="#session.adminid"></s:hidden>
<s:hidden name="adminid" value="#request.session.adminid"></s:hidden>
都取不到,请问怎么才能取到adminid的值。

如果我想用el表达式取,又应该怎么取。

谢谢大家。
...全文
2721 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
lc7183627 2012-08-27
  • 打赏
  • 举报
回复
楼主弄好了吗?我刚写作业也是和你一样啊。我是s:textfield 里面value要放用户的name怎么都取不到。我导入了Struts2的标签库又导入了JSTL标签库 这样我在页面用c:可以用EL表达式,但是s:的标签用EL都会报错。实验了好多次OGNL都没成功啊
yanweijie0317 2010-06-12
  • 打赏
  • 举报
回复
如果直接显示,${sessionScope.adminid}可以 ,结合struts2.0标签则不能用el表达式,必须用ognl表达式#session.adminid 或者%{#session.adminid}
firegunner 2010-04-02
  • 打赏
  • 举报
回复
你这是用struts1的思维套用struts2的方法。你那样根本没有将str放到“adminid”的session堆栈中,而只是放到了一个普通的session中,所以不能用“#key”的方式取值,而应该用el表达式“${}”来取值。
liuguochuan 2010-01-28
  • 打赏
  • 举报
回复
<input type="hidden" name="account" value="${adminid}">
hp_innovation 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wshdy0139 的回复:]
你可以用%{#request.adminid}
或者用el:
${sessionScope.adminid}
[/Quote]

正解
nf0011468 2010-01-28
  • 打赏
  • 举报
回复
#XXX是迭代取值的吧,不迭代直接value="<s:property value="adminid"/>"
想用EL表达试就别用s:hidden ,直接用原始的hidden
<input type="hidden" name="adminid" value=${adminid}">
sky3785 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 liuguochuan 的回复:]
<input type="hidden" name="account" value="${adminid}">
[/Quote]
这样可以用,struts2标签里不能用EL,一般用OGNL。不能混了
lanming42 2010-01-28
  • 打赏
  • 举报
回复
struts1用EL,struts2用OGNL比较好
yuxiaoping225170 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wshdy0139 的回复:]
你可以用%{#request.adminid}
或者用el:
${sessionScope.adminid}
[/Quote]
正解....
nicholasbobo 2010-01-27
  • 打赏
  • 举报
回复
自己仔细看异常不就明白了么?STRUTS2标签里是不能用EL表达式的!!!!!用OGNL,27楼已经给了代码啦
su88lin 2010-01-27
  • 打赏
  • 举报
回复
我现在还不会运用struts2.正好学习下。
zys2419740 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cyc123007512 的回复:]
貌似el表达式都用不了了,无论写${sessionScope.adminid}还是${adminid}在页面上都会报错,一进jsp就报错,更别说取值了。
javax.servlet.ServletException: org.apache.jasper.JasperException: /admin/addAdmin.jsp(103,0) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)


root cause

org.apache.jasper.JasperException: /admin/addAdmin.jsp(103,0) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)



[/Quote]
${},可以得到session request里的东西
nicholasbobo 2010-01-27
  • 打赏
  • 举报
回复
楼上的,18楼没错了,你的SESSION跟他的SESSION都不是一个东西,你的是Map,别人的是HttpSession,仔细观察下
Monkey 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 liuyc875938018 的回复:]
HttpServletRequest request = ServletActionContext.getRequest();

String  a = request.getParameter("name");
这样能拿到页面上的值!


HttpSession session = request.getSession();

String s = (String)session.getAttribute("name");
这样取不到的。。。
[/Quote]



你怎么能这样做咯,ActionContext session = ActionContext.getContext();然后session.getSession();如果想保存值的话 session.put("键","值");
DavidChou 2010-01-25
  • 打赏
  • 举报
回复
不对呀 用#session.adminid 应该能取到值啊
txq1989620 2010-01-22
  • 打赏
  • 举报
回复
${sessionScope.adminId}
水中影子 2010-01-22
  • 打赏
  • 举报
回复
在struts2中,最好别使用EL,使用OGNL
BigBird2012 2010-01-22
  • 打赏
  • 举报
回复
楼主别试了,在很多情况下是不成功的,我试验了好久了,也是报的和你一样的错误。尽量使用OGNL吧!
liu_moyan 2010-01-22
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 xinlan1022 的回复:]
引用 27 楼 liu_moyan 的回复:
<s:hidden value="%{#session.adminid}" name="adminid" id="adminid"> </s:hidden>


el直接${adminid}
[/Quote]
他的项目里面一el就报错 所以才写这个
NOKIA5320XM 2010-01-22
  • 打赏
  • 举报
回复
<s:hidden name="adminid" value="#session.adminid"> </s:hidden>
加载更多回复(29)

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧