网上找了攻略,但是出现一个不曾提到的问题.
第一个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);所传送的值!
求指点!
------解决方案--------------------
既然都放到session中了,还有必要用参数去传递吗
------解决方案--------------------
既然你都是用request.getSession().setAttribute("usersname", usersname);
把username放到session中了,那么你在所有的action中都可以通过
request.getSession().getAttribute("usersname");来获取撒,何必还拼url呢?
------解决方案--------------------
在xml中Action中result标签中 添加属性type="chain" 标签内容填写你要链的Action的地址
------解决方案--------------------
<!-- 携带参数的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肯定能取到,测试没有问题。
------解决方案--------------------
第一个action里有 username 属性否 setter getter?
第二个action里有 username 属性否 setter getter?