首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts2里面如何用el表达式取值

2012-09-20 
struts2里面怎么用el表达式取值用户登录时候,在java里面保存用户账号如下:request.getSession().setAttrib

struts2里面怎么用el表达式取值
用户登录时候,在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表达式取,又应该怎么取。

谢谢大家。

[解决办法]
${adminid}
[解决办法]
Map session = ActionContext.getContext.getSession("");
session.put("adminid", str);

那么页面上就可以写成value="#session.adminid"了

至于你这个应该怎么写,可以试试value="${adminid}"
[解决办法]
LZ是保存在request里面,二次请求后这个值就没了
[解决办法]
你可以用%{#request.adminid}
或者用el:
${sessionScope.adminid}
[解决办法]
<input type="hidden" name="account" value="${sessionScope.adminid}">
[解决办法]
LZ确定在用Struts2???
Struts2里面有能这样那Session吗?
[解决办法]
request.getSession().setAttribute("adminid", str);
[解决办法]
struts2标签不能和el表达式共用
[解决办法]
不是吧!!!
你在Sturts2的哪里调用者方法???
你的Action继承什么?
[解决办法]
HttpServletRequest request = ServletActionContext.getRequest();

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


HttpSession session = request.getSession();

String s = (String)session.getAttribute("name");
这样取不到的。。。
[解决办法]
%{adminid}
[解决办法]
<s:hidden value="%{#session.adminid}" name="adminid" id="adminid"></s:hidden>
[解决办法]
1.
request.getSession().setAttribute("adminid", str); 
<s:hidden name="adminid" value="#session.adminid"></s:hidden>

2.Struts2 是否支持EL。

struts2.1的版本中struts2标签不支持EL表达式。

[解决办法]

探讨
<s:hidden value="%{#session.adminid}" name="adminid" id="adminid"> </s:hidden>

[解决办法]
<s:hidden name="adminid" value="#session.adminid"> </s:hidden>
[解决办法]
探讨
引用:
<s:hidden value="%{#session.adminid}" name="adminid" id="adminid"> </s:hidden>


el直接${adminid}

[解决办法]
楼主别试了,在很多情况下是不成功的,我试验了好久了,也是报的和你一样的错误。尽量使用OGNL吧!


[解决办法]
在struts2中,最好别使用EL,使用OGNL
[解决办法]
${sessionScope.adminId}
[解决办法]
不对呀 用#session.adminid 应该能取到值啊

[解决办法]
我现在还不会运用struts2.正好学习下。
[解决办法]
自己仔细看异常不就明白了么?STRUTS2标签里是不能用EL表达式的!!!!!用OGNL,27楼已经给了代码啦
[解决办法]

探讨
你可以用%{#request.adminid}
或者用el:
${sessionScope.adminid}

[解决办法]
探讨
HttpServletRequest request = ServletActionContext.getRequest();

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


HttpSession session = request.getSession();

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

[解决办法]
楼上的,18楼没错了,你的SESSION跟他的SESSION都不是一个东西,你的是Map,别人的是HttpSession,仔细观察下
[解决办法]
探讨
貌似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)




[解决办法]
<input type="hidden" name="account" value="${adminid}">
[解决办法]
struts1用EL,struts2用OGNL比较好
[解决办法]
探讨
<input type="hidden" name="account" value="${adminid}">

[解决办法]
#XXX是迭代取值的吧,不迭代直接value="<s:property value="adminid"/>"
想用EL表达试就别用s:hidden ,直接用原始的hidden
<input type="hidden" name="adminid" value=${adminid}">
[解决办法]
探讨
你可以用%{#request.adminid}
或者用el:
${sessionScope.adminid}

热点排行