Strut2的向action传值的问题,高手来帮忙下

dsbjoe 2009-05-24 08:54:47
昨天做个东西,不知道为什么用<s:hidden>怎么都无法成功向action传值,不知道是ognl语法不对还是别的原因,一下是我的代码(我用的模型驱动):
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"></s:hidden> <!-- 失败,value取不到 -->

<s:property value="%{#session.admin.id}"/> <!-- 这个倒是能在页面显示 -->


后来无奈换成普通html的:<input type="hidden" name="news.inputAdmin.id" value=<%=((Admin)session.getAttribute("admin")).getId()%>才得以成功

请教高手,如何从session中取值给Struts2的hidden标签,先谢过了
...全文
5128 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
逆风向前进 2010-06-14
  • 打赏
  • 举报
回复
顶!www.skycn.com
izard999 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hongyu5920 的回复:]
LZ从session取值还需要加%{}吗?这不是相当于把取到的值传回到action里面了吗?
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"> </s:hidden>
不妨改成这样试试
<s:hidden name="news.inputAdmin.id" value="%#session.admin.id">……
[/Quote]
这样还不对些..!

LZ用的是ModelDriven接受请求参数! 唯一的解释就是 你这个hidden的参数是被ModelDriven里面的这个属性接受了, 而非Action.!
我不清楚你是否在你的Model和Action中同时有这个属性news.inputAdmin.id呢?
poeeva168 2010-06-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 a1123454 的回复:]
引用 5 楼 cbitoa 的回复:
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"> </s:hidden>
改成
<s:hidden name="news.inputAdmin.id" > </s:hidden>
把value去掉


其实这样就可以传到action 中了
[/Quote]

正解
hongyu5920 2010-05-25
  • 打赏
  • 举报
回复
LZ从session取值还需要加%{}吗?这不是相当于把取到的值传回到action里面了吗?
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"> </s:hidden>
不妨改成这样试试
<s:hidden name="news.inputAdmin.id" value="%#session.admin.id"> </s:hidden>
「已注销」 2010-05-24
  • 打赏
  • 举报
回复
看了 问题 ,回复也看了。还行哦。
dsbjoe 2009-06-01
  • 打赏
  • 举报
回复
没人了吗?自己顶起来啊!!!!
dsbjoe 2009-05-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 a1123454 的回复:]
引用 5 楼 cbitoa 的回复:
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"> </s:hidden>
改成
<s:hidden name="news.inputAdmin.id" > </s:hidden>
把value去掉


其实这样就可以传到action 中了
[/Quote]
这样也能完成从session中取值?
a1123454 2009-05-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cbitoa 的回复:]
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"> </s:hidden>
改成
<s:hidden name="news.inputAdmin.id" > </s:hidden>
把value去掉
[/Quote]

其实这样就可以传到action 中了
dsbjoe 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 benniaopiaoling 的回复:]
是可以获取到值
例如: <s:property value="%{#session.slUser.userName}"/>
<s:hidden name="ss" value="%{#session.slUser.userName}"/>

源码:
何素欢
<input type="hidden" name="ss" value="何素欢" id="ss"/>
[/Quote]
关键是,这个值是给后台一个叫news的POJO的inputAdmin的id属性,如果用ss,当然能传过去了
benniaopiaoling 2009-05-27
  • 打赏
  • 举报
回复
是可以获取到值
例如:<s:property value="%{#session.slUser.userName}"/>
<s:hidden name="ss" value="%{#session.slUser.userName}"/>

源码:
何素欢
<input type="hidden" name="ss" value="何素欢" id="ss"/>
dsbjoe 2009-05-26
  • 打赏
  • 举报
回复
dsbjoe 2009-05-25
  • 打赏
  • 举报
回复
去掉?那传到action里的值是什么?我要传的值在session里的啊
dsbjoe 2009-05-25
  • 打赏
  • 举报
回复
那怎么解决呢?
jxplus 2009-05-25
  • 打赏
  • 举报
回复
从你的叙述看来,唯一的解释就是 news.inputAdmin.id和%{#session.admin.id}值冲突。
dsbjoe 2009-05-25
  • 打赏
  • 举报
回复
我页面所转向的action里有个news对象,news对象里又包含inputAdmin对象,id是它的主键,而这里hidden的值就是从session中取出来set到inputAdmin里去的
cbitoa 2009-05-25
  • 打赏
  • 举报
回复
<s:hidden name="news.inputAdmin.id" value="%{#session.admin.id}"> </s:hidden>
改成
<s:hidden name="news.inputAdmin.id" > </s:hidden>
把value去掉
myairland 2009-05-24
  • 打赏
  • 举报
回复

如果 news.inputAdmin.id和%{#session.admin.id}都有值,楼主认为struts应该显示哪一个?不妨去看看struts2的标签实现源码

67,516

社区成员

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

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