Code Bye

请求请求一个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

5分
<s:property value=”user.userName”/>
${user.userName }直接打印试试
5分
有可能不是null,是””
5分
那你就先获取request对象,然后通过request获取值试一试。。
5分
request.getAttrribute(“user”);试一下。
5分
看你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>
5分
应该是的 user里面没有数据吧。你调试看看。
@rui888 
user里面没有数据  用${user.userName}时  页面总会出什么吧  现在什么都没有
@suciver 
action没有user对象的返回
5分
先别用s:if标签,直接打印<s:property value=”user.userName”/>看下值是什么。
5分
引用 8 楼 lykakaxi 的回复:

@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>

引用 10 楼 suciver 的回复:
Quote: 引用 8 楼 lykakaxi 的回复:

@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>

同意楼上的分析,你debug看一下值栈里存的是啥.

@suciver 
嗯 知道了  谢谢