日期:2014-05-20  浏览次数:20751 次

struts2 拦截器 request作用域问题
通过某个链接,链接到initModulePermissionData.action内,代码如下,该方法主要的作业是初始化页面需要的修改数据:
Java code

public String initModulePermissionData(){
        List<SALM> salms = salmService.findAllSALM();
        this.setListSalm(salms);   //set get
        List<DEPT> depts = deptService.findAllDEPT();
        this.setDeptList(depts);   //set get  
        List<ModuleUsers> moduleusers =                   moduleUsersService.findModuleUsersByModuleId(this.getModuleVo().getId());
        this.setModuleUsersList(moduleusers);   //set get   
        Module  temp  = moduleService.get(this.getModuleVo().getId());
        this.setModule(temp);   //set get
        return SUCCESS;  //返回sucess进入modify.jsp页面
}


执行完initModulePermissionData方法后进入modify.jsp!在该页面中我有一个存储按钮,点击存储按钮之后表单提交到
saveModulePermissionData方法中,执行修改动作!
Java code

public String saveModulePermissionData(){
        if(this.getModuleVo().getView() != null){
            System.out.println(this.getModuleVo().getId());
            System.out.println(this.getModuleVo().getView().length);
            moduleUsersService.savaOrUpdate(this.getModuleVo().getId(), this.getModuleVo().getView());
        }
        List<SALM> salms = salmService.findAllSALM();
        this.setListSalm(salms);
        List<DEPT> depts = deptService.findAllDEPT();
        this.setDeptList(depts);
        List<ModuleUsers> moduleusers = moduleUsersService.findModuleUsersByModuleId(this.getModuleVo().getId());
        this.setModuleUsersList(moduleusers);
        Module  temp  = moduleService.get(this.getModuleVo().getId());
        this.setModule(temp);
        return SUCCESS;
    }


执行完修改之后我又重新初始化initModulePermissionData方法体中的数据,后台数据有变化,但是修改之后页面的现实数据没有变化!
是不是request作用域的问题。
我都是通过配置get和set方法来取值的。
modify.jsp的取值代码:
Java code

List<SALM> salms  = (List<SALM>)request.getAttribute("listSalm");
    Module  module  =  (Module)request.getAttribute("module");
    List<DEPT> depts  = (List<DEPT>)request.getAttribute("deptList");
    List<ModuleUsers> moduleusers  = (List<ModuleUsers>)request.getAttribute("moduleUsersList");





------解决方案--------------------
貌似与request没什么关系,是不是更新方法的底层的事务没有提交