<!-- 角色管理 -->
<action name="roleAction" class="cn.com.ivisions.spider.action.RoleAction">
<result name="userRoleList">role/roleList.jsp</result>
<result name="roleAddPage">role/RoleAddForm.jsp</result>
<result name="addRoleSuccess" type="redirect">roleAction!userRoleList.action</result>
<result name="addFailure">role/RoleAddForm.jsp</result>
<result name="updateRolePage">role/updateUserRoleForm.jsp</result>
<result name="updateRoleSucces" type="redirect">roleAction!userRoleList.action</result>
<result name="updateFailure">roleAction!updateRoleForm.action</result>
<result name="deleteSuccess" type="redirect">roleAction!userRoleList.action</result>
<result name="delFailure" type="chain">roleAction!userRoleList.action</result>
<result name="setRolePage">role/loadMenuSet.jsp</result>
<result name="roleMenuSuccess" type="redirect">roleAction!userRoleList.action</result>
</action>我的action的写法是这种写法,我想通过type="chain"来传递一个动作链给我roleAction!userRoleList.action,但是总是报错。

解决方案 »

  1.   


    <result name="delFailure" type="redirect">
    <param name="actionName">imageList2</param>
    <param name="chain">roleAction!userRoleList.action</param>
    </result>我想要这样写才行吧
    <result name="delFailure" type="chain">roleAction!userRoleList.action</result>
    你这样返回到那了?
      

  2.   

    <result name="delFailure" type="chain">roleAction!userRoleList.action</result>
    你这样返回到那了?这样写报没有找到action,报错。上面我回复的弄错了。
      

  3.   


    那不是这里的原因了,你看看你访问action的路径是不是对了。。
      

  4.   


    这个就看roleAction中返回的是哪里了。
      

  5.   


    roleAction是action名,!userRoleList.action这个userRoleList是roleAction类里面的一个方法啊。
      

  6.   

    我通过roleAction!deleteRole.action?roleid=1048访问了public String deleteRole() throws Exception{
    try {

    if(getRequest().getParameter("roleid")!=null){
    ids=getRequest().getParameter("roleid");
    }
    String[] roleIds=ids.split(",");
    for (int i = 0; i < roleIds.length; i++) {
    Tbrole temprole = new Tbrole();
    temprole=(Tbrole) roleService.findRoleById(temprole, Long.valueOf(roleIds[i]));
    //System.out.println("用户等级:"+temprole.getRoleevel().toString());
    if(temprole.getRoleevel()==1L){

    //addActionMessage("<script>alert('此角色为系统角色不能删!');</script>");

    this.messageError="<script>alert('此角色为系统角色不能删!');</script>";
    return "delFailure";
    }else{
    temprole.setRoleid(Long.valueOf(roleIds[i]));
    try {
    roleService.delete(temprole);
    } catch (DataIntegrityViolationException e) {
    e.printStackTrace();
    addActionMessage("<script>alert(删除失败!');</script>");
    return "delFailure";
    }
    }
    }
    addActionMessage("<script>alert('删除成功!');</script>");

    } catch (Exception e) {
    e.printStackTrace();
    }
    return "deleteSuccess";
    }这个方法,因为出错,return 返回“delFailure”,所以就到<result name="delFailure" type="chain">roleAction!userRoleList.action</result>这里来了,就是这样出错了。
      

  7.   

    userRoleList把断点打这个方法里面
      

  8.   


    就是找不到这个action和这个方法。
      

  9.   

    把<result name="delFailure" type="chain">roleAction!userRoleList.action</result>这句话中“!”后面的userRoleList.action先去掉action后缀再放到<action name="roleAction" class="cn.com.ivisions.spider.action.RoleAction">里的method属性上去,(其他有这种形式的都这样做)。
    最后的配置为下面的形式:
    <action name="roleAction" class="cn.com.ivisions.spider.action.RoleAction" method="userRoleList">
    <result name="userRoleList">role/roleList.jsp</result>
    <result name="roleAddPage">role/RoleAddForm.jsp</result>
    <result name="addRoleSuccess" type="redirect">roleAction</result>
    <result name="addFailure">role/RoleAddForm.jsp</result>
    <result name="updateRolePage">role/updateUserRoleForm.jsp</result>
    <result name="updateRoleSucces" type="redirect">roleAction</result>
    <result name="updateFailure">roleAction</result>
    <result name="deleteSuccess" type="redirect">roleAction</result>
    <result name="delFailure" type="chain">roleAction</result>
    <result name="setRolePage">role/loadMenuSet.jsp</result>
    <result name="roleMenuSuccess" type="redirect">roleAction</result>
    </action>