struts2整合json
struts2-json-plugin-2.3.7.jar
struts2认为将数据转换成json格式,并且将数据发送到响应中的操作非常常用,故提供了一个集成json的jar包
1.为了明确被转换成json的数据是哪些,要求所有被转换的数据必须提供get方法,否则不予转换
2.要求转换的数据格式不再是一个页面了
2.1 要求返回的type="json",package-extends="json-default"
3.在操作中获取数据
在java类中:
//服务于ajax响应的辅助变量
private List<GoodsTypeModel> gtmList;
public List<GoodsTypeModel> getGtmList(){
return gtmList;
}
public String ajaxGetGtmBySm(){
//根据供应商uuid获取商品类别集合数据
gtmList = goodsTypeEbi.getAllBySmUuid(supplierUuid);
//将数据传递回页面 格式:json
//发送数据response发送数据json格式
return "ajaxGetGtmBySm";
}
在struts.xml文件中添加:
<!-- extends="json-default" 目的是启用插件包中的配置 -->
<package name="default" namespace="/" extends="json-default">
<!-- 此处跳转时要的不是页面,而是一个json数据 -->
<result name="ajaxGetGtmBySm" type="json">
<!-- 数据如果不满足情况,比如数据过多 -->
<!-- 需要对数据进行过滤 -->
<!-- 设置数据的来源方 -->
<!-- root="action"数据来源于action类中的所有get开头的方法对应的数据 -->
<param name="root">action</param>
<!-- 如果具体的数据中包含有多余的数据,可以通过正则表达式进行更详细的过滤 -->
<param name="includeProperties">
gtmList\[\d+\]\.uuid,
gtmList\[\d+\]\.name
</param>
<!-- 如果需要用的数据特别多,可以去除不需要的 -->
<!-- <param name="excludeProperties">
gtmList\[\d+\]\.uuid,
gtmList\[]d+\]\.name
</param> -->
</result>