日期:2014-05-18  浏览次数:21014 次

请求请求一个struct2的action 在跳转后的页面的url中已接受到上页面传的参数 为什么在跳转后的页面中 取不到这些参数呢
请求一个struct2的action  跳转到另一个页面 跳转后页面的url已有上一页面传过来的参数 但是在跳转后的页面中却取不到对应的参数
下面是跳转后页面的url:
http://localhost:8080/04/articleAction_queryArticlesByUserOfArticle?article.articleId=139&article.user.userName=cdd
但是 在该页面中

<s:if test="{user.userName!=null}">
 <s:property value="user.userName"/>
</s:if>

 却获取不到 user.userName

------解决方案--------------------
<s:property value="user.userName"/>
${user.userName }直接打印试试
------解决方案--------------------
有可能不是null,是""
------解决方案--------------------
那你就先获取request对象,然后通过request获取值试一试。。
------解决方案--------------------
request.getAttrribute("user");试一下。
------解决方案--------------------
看你url的参数是article.user.userName你页面上取的时候却变成了user.userName是你action中有user这个对象的返回吗.
还有你的s:if的struts2标签里面用了el表达式这是不允许的。把el的{}去掉
<s:if test="user.userName!=null">
 <s:property value="user.userName"/>
</s:if>
------解决方案--------------------
应该是的 user里面没有数据吧。你调试看看。
------解决方案--------------------
先别用s:if标签,直接打印<s:property value="user.userName"/>看下值是什么。
------解决方案--------------------
引用:
@suciver 
action没有user对象的返回

你action都没有user对象的getter你还用user.userName改成
<s:if test="#parameters.article.user.userName!=null">
 <s:property value="#parameters.article.user.userName"/>
</s:if>