在解决这个问题之前,我们需要先明确两个问题?
1.首先明确,定义在data-options(combobox中属性)中我们的"textFiled"和"valueFiled"需要从后台得到什么样的值?
2.在明确得到什么样的值之后,我们需要去通过怎么样的方式去得到前端需要的值?
在明确这两点之后,我现在来分享一下自己的方式:
1.它要得到的是键值对形式json格式的值:[{"catName":"果蔬类","id":2},{"catName":"母婴类","id":1}](注意它需要的是这样的,其他什么样的都不行)。
2.在知道这点之后我是通过JSONArray.toJSONString(集合);的方式直接返回的。
接下来分享一下代码:
<div class="fitem">
<label>类别名:</label>
<input id="catName" name="catName" class="easyui-combobox" data-options="textField:'catName',valueField:'id',url:ComboboxServlet,panelHeight:'auto',prompt:'请选择类别名'">
</div>
其中input的各个参数解释:
type:text id : 自定义 name: 自定义 class: 一定要写easyui-combobox (重要)
data-options=” eaitable(是否可以编辑?)
valueField: 数据的键key(重要 )
textField:数据的值value(重要)
url:(请求后台的地址)(重要)
prompt:(提示信息)”
required:(校验)
servlet层:
private String getCombobox(HttpServletRequest req) {
Connection conn = DButil.getConnection();
String result = "";
try {
List<Category> getComboboxs = OtherDAO.getCombobox(conn);
result = JSONArray.toJSONString(getComboboxs);
// JSONObject json = new JSONObject();
// json.put("getComboboxs",getComboboxs);
// result = json.toString();
} catch (SQLException e) {
result = "{\"success\":false,\"msg\":\"获取操作执行错误,请联系开发商\"}";
e.printStackTrace();
}
DButil.closeConnection(conn);
return result;
}
结果:
总结:这虽然只是我觉得最重要的学习不是解决了这个问题是有多重要,而是能够学到解决问题的方式,只有对症下药才能够有真正意义上对我们成长的收获。