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

解决方案 »

  1.   

    <s:property value="user.userName"/>
    ${user.userName }直接打印试试
      

  2.   

    那你就先获取request对象,然后通过request获取值试一试。。
      

  3.   

    request.getAttrribute("user");试一下。
      

  4.   

    看你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里面没有数据吧。你调试看看。
      

  6.   

    @rui888 
    user里面没有数据  用${user.userName}时  页面总会出什么吧  现在什么都没有
      

  7.   

    @suciver 
    action没有user对象的返回
      

  8.   

    先别用s:if标签,直接打印<s:property value="user.userName"/>看下值是什么。
      

  9.   

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

  10.   

    你action都没有user对象的getter你还用user.userName改成
    <s:if test="#parameters.article.user.userName!=null">
     <s:property value="#parameters.article.user.userName"/>
    </s:if>
    同意楼上的分析,你debug看一下值栈里存的是啥.
      

  11.   

    @suciver 
    嗯 知道了  谢谢