开发过程中使用Struts2框架,需要向前台传递Json串,总结一下步骤和做法
1、引入相关jar包
2、在写action的时候需要继承的包要改为”json-default”
<package name="privilege" namespace="/" extends="json-default">
<action name="privilegeAction_*" method="{1}"
class="privilegeAction">
<result type="json"></result>
</action>
</package>
3、Action中的写法
private Collection<Menuitem> privilegeList;
public String showPrivilege(){
this.privilegeList =
this.privilegeService.getPrivileges();
System.out.println(privilegeList.size());
return SUCCESS;
}
4、常见错误
JSONException:
异常的产生原因:当加载一个对象时,struts2内部的处理方案是,除了加载对象以外,还要加载关联的对象。而加载关联的对象是懒加载,而struts2和ajax结合之后
openSessioninview模式不起作用,所以获取不到懒加载的对象
解决方案:
在实体方法上添加@JSON(serialize=false)的注解,意思是忽略该属性