在action中配置@Result(params={"root","{d,message}"})

来源:互联网 发布:惠普游戏本 知乎 编辑:程序博客网 时间:2024/05/16 23:59

问题的产生:我需要通过json给前台传回多个参数,一开始注解中是这样写的:params={“root”,”d,message”},在前端只能取到message的值,后来加上大括号就行了:params={“root”,”{d,message}”},需要注意的是,d这个部门对象中的属性不要有其他对象或者集合,有的话在返回json过程中会出错,这时可以给其他对象或者集合的getter方法上面加@JSON(serialize=false),告诉框架不要序列化这些属性即可。

@Controller@Scope("prototype")@Namespace("/department")@ParentPackage("json-default")//使用json必须要设置这个,它继承了struts-defaultpublic class DepartmentAction extends ActionSupport{private Department d;//部门对象private String message;//返回页面的消息@Action(value="update",results={                        //重点在下面这句···············································                            @Result(name="json",type="json",params={"root","{d,message}"})    })    public String update(){            return "json";    }//需要使用json方式返回d和message,那么一定要封装,d和message是全局变量    public Department getD() {        return d;    }    public void setD(Department d) {        this.d = d;    }    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.message = message;    }}
2 0