//第一步 使用@Expose查找
//实体类的属性名不一定与数据库列名相同,但是类型一定要匹配
//当使用gson进行生产json字符串时,可以通过判断是否有该注解生成字 符串内容
//如由注解就添加到字符串中,没有的就不添加到json字符串中
//说明:需要使用如下方式实例化gson对象:new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
@Expose
private int id;
@Expose
private String cname;
//使用集合保存多条商品信息--list
private List<Goods> goods;
//第二步 编写一个Action
@RequestMapping("/listcategory")
public void listCategoryForAjax(HttpServletResponse response) throws IOException {
List<Category> list = categoryService.findAll();
// 通过Expose注解排除某些字段信息,即有些数据不添加到Json字符串中
String s = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(list);
logger.info(list.size() + " ::::::::: " + s);
// 把数据返回给浏览器--返回给jquery ui
response.setContentType("text/html; charset=UTF-8");
response.getWriter().write(s);
response.getWriter().flush();
}
//第三步 添加标签
<select id="category" name="category" class="easyui-combobox" data-options="valueField:'id', textField:'cname', panelHeight:'auto', width:'80'">
//第四步 编写javaScript代码
var url;
//打开新增窗口
function newGoods(){
$('#dlg').dialog('open').dialog('setTitle','新增商品');
//$('#fm').form('clear');
$('#fm').form('reset');
url = 'goods/saveGoodsForAjax.do';
//打开新增窗口,加载分类信息
loadCategory();
}
function loadCategory(){
var dat = $('#dg').datagrid('getSelected');
$.ajax({url:"goods/listcategory.do",dataType:'json',type:'post',success:function(data){
//把查询的数据填充到下拉列表中
$("#category").combobox("loadData", data);
//修改选择的项
if(dat){
//修改要反选默认值--根据value进行选择
$('#category').combobox('select', dat.category);
}else{
//新增取第一个为默认值--根据value进行选择
$('#category').combobox('select', data[0].id);
}
}});
}