这是我的struts2.xml文件
<package name="/" extends="default" namespace="/">
<action name="userAction" class="cn.com.ivisions.action.CmsUserAction">
<result name="welcome">welcome.jsp</result>
<result name="error">login.jsp</result>
<result name="addSuccess" type="chain">userAction!listUser.action</result>
<result name="listUser">user/userList.jsp</result>
</action>
</package>public class CmsUserAction extends BaseAction{
/**
* 添加用户
* @return
*/
public String addUser(){
try {
user.setRegtime(new Timestamp(System.currentTimeMillis()));
user.setCruser(((CmsUser)getSession().get("loginUser")).getUserName());
user.setPassword("123456");
MD5andKL md5=new MD5andKL();
String pw="";
pw=md5.MD5(user.getPassword());
user.setPassword(pw);
if (user.getIfpubmyinfo()==null) {
user.setIfpubmyinfo(new Integer(1));//是否公开信息,默认为1公开,0为不公开
}
cmsUserService.addUser(user);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
this.addActionMessage("<script>alert('添加用户成功!');</script>");
return "addSuccess";
}
/**
* 用户列表
* @return
*/
public String listUser(){
List<CmsUser> users=null;
List<CmsMenu> menus=null;
// 管理工具
String menuName = "userManager";
try {
users=cmsUserService.userList();
getRequest().setAttribute("users", users);
menus=(List<CmsMenu>)cmsMenuService.listSubMenus(menuName, ((CmsUser)getSession().get("loginUser")).getUserId());
getRequest().setAttribute("menus", menus);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "listUser";
}
}
以上两个方法是在同一个action中,我在添加的页面中通过userAction!addUser.action请求访问了addUser这个方法,
然后addUser方法调用完,我return “addSuccess”,这个应该对应配置文件的这个<result name="addSuccess" type="chain">userAction!listUser.action</result>,为什么我访问不能够调用listUser这个方法。请问,在线等待。
<package name="/" extends="default" namespace="/">
<action name="userAction" class="cn.com.ivisions.action.CmsUserAction">
<result name="welcome">welcome.jsp</result>
<result name="error">login.jsp</result>
<result name="addSuccess" type="chain">userAction!listUser.action</result>
<result name="listUser">user/userList.jsp</result>
</action>
</package>public class CmsUserAction extends BaseAction{
/**
* 添加用户
* @return
*/
public String addUser(){
try {
user.setRegtime(new Timestamp(System.currentTimeMillis()));
user.setCruser(((CmsUser)getSession().get("loginUser")).getUserName());
user.setPassword("123456");
MD5andKL md5=new MD5andKL();
String pw="";
pw=md5.MD5(user.getPassword());
user.setPassword(pw);
if (user.getIfpubmyinfo()==null) {
user.setIfpubmyinfo(new Integer(1));//是否公开信息,默认为1公开,0为不公开
}
cmsUserService.addUser(user);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
this.addActionMessage("<script>alert('添加用户成功!');</script>");
return "addSuccess";
}
/**
* 用户列表
* @return
*/
public String listUser(){
List<CmsUser> users=null;
List<CmsMenu> menus=null;
// 管理工具
String menuName = "userManager";
try {
users=cmsUserService.userList();
getRequest().setAttribute("users", users);
menus=(List<CmsMenu>)cmsMenuService.listSubMenus(menuName, ((CmsUser)getSession().get("loginUser")).getUserId());
getRequest().setAttribute("menus", menus);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "listUser";
}
}
以上两个方法是在同一个action中,我在添加的页面中通过userAction!addUser.action请求访问了addUser这个方法,
然后addUser方法调用完,我return “addSuccess”,这个应该对应配置文件的这个<result name="addSuccess" type="chain">userAction!listUser.action</result>,为什么我访问不能够调用listUser这个方法。请问,在线等待。
我提供你一个列表,你看看改如何改你就知道了
Chain Result - 用于 Action Chaining
Dispatcher Result - 用于 JSP 整合
FreeMarker Result - 用于 FreeMarker 整合
HttpHeader Result - 用于控制特殊的HTTP行为
JasperReports Result - 用于 JasperReports 整合
Redirect Result - 用于直接跳转到例外的URL
Redirect Action Result - 用于直接跳转到另外的action
Stream Result - 用于向浏览器返回一个InputStream (一般用于文件下载)
Velocity Result - 用于 Velocity 整合
XSL Result - 用于 XML/XSLT 整合
<action name="peMajor_*" method="{1}" class="peMajorAction">像这样配置一下试试
你这个是跳转的配置,你提交的url和这个没有太直接的关系
我给你的配置详解是叫你看看,如果你result跳转一个url而不是一个jsp页面的话,你看看type应该是什么
去掉试一试
<param name="actionName">xxx</param>
<param name="method">xxx</param>
</result>
这么调用试试