网上找了攻略,但是出现一个不曾提到的问题.
第一个action:
public String findNameAndPwd(){
String url="";
String usersname=users.getUsername();
List<Users> list=this.usersBiz.findObjectByName(usersname);
System.out.println(list.get(0).getPassword());
for(int i=0;i<list.size();i++){
if(users.getPassword().equals(list.get(i).getPassword())){
System.out.println(usersname);
request.getSession().setAttribute("usersname", usersname);
url=SUCCESS;
}
}
return url;
}
在struts.xml中路径的配置
<action name="users" class="UsersAction">
<result name="success" type="redirect">/groupusers!findByUserByName.action?username=${usersname}</result>
<result name="cjgly">/users/admins.jsp</result>
<result name="gly">/users/users.jsp</result>
<result name="gjyh">/assigned/index_ass.jsp</result>
<result name="zjyh">/notices/notices.jsp</result>
<result name="ptyh">/Tack/index.jsp</result>
</action>
成功的跳转到第二个action,但是${usersname}为空.就是${usersname}取不到第一个action中,
request.getSession().setAttribute("usersname", usersname);所传送的值!
求指点!

解决方案 »

  1.   

    既然都放到session中了,还有必要用参数去传递吗
      

  2.   

    既然你都是用request.getSession().setAttribute("usersname", usersname);
    把username放到session中了,那么你在所有的action中都可以通过
    request.getSession().getAttribute("usersname");来获取撒,何必还拼url呢?
      

  3.   

    那如果request.getSession().getAttribute("usersname");了之后,
    如何在第二个action中取到这个值呢?如果不把usersname放到session空间中,怎么把usersname值传递到struts.xml中去凭借url呢?
      

  4.   

    在xml中Action中result标签中 添加属性type="chain"  标签内容填写你要链的Action的地址
      

  5.   

     <!-- 携带参数的action直接的跳转配置 -->
          <action name="ParseXml" class="com.demo.TestXml" method="ParseXml">
    <result name="success" type="chain"> 
    <param name="actionName">TeString</param>
    <param name="message">${message}</param>
    </result>
      </action>这样第二个action肯定能取到,测试没有问题。
      

  6.   

    请问${message}他的值从哪里来呢?
      

  7.   

    想知道如果凭借字符串的时候,
    <result name="success" type="redirect">/groupusers!findByUserByName.action?username=${usersname}</result>
    路径中的${usersname}从哪里得到的?
    第一个action该怎么写呢?
      

  8.   

    第一个action里有 username 属性否  setter getter?第二个action里有 username 属性否 setter getter?
      

  9.   

    这种方法是对的,我看错了。
    第二种拼接字符串的方法需要
    1、在add.jsp页面中<input type="hidden" name="newsId" id="newsId" value="612"/>2、提交跳转到的action类中需要添加
    private Long newsId;
    public Long getNewsId() {
    return newsId;
    }
    public void setNewsId(Long newsId) {
    this.newsId = newsId;
    }
    3、在跳转配置struts.xml文件中可以得到newsId的值
    <result name="xiangguanAdd" type="redirect">news/tantaoXiangguan.action?id=${newsId}</result>
    4、可以在跳转的tantaoXiangguan类中得到值
    getParameter("id");
    总结:要传递数值在action类中必须要有get set方法。
    才能正确传值。
    多谢各位的帮助,结贴了!