struts2和Jquery EasyUI整合数据查询(DataGrid)三
(原创,转载请注明)
接上一篇
顺带提一下上面代码出现的RoomTypeJsonValueProcessor,其实就是对Date进行处理
RoomTypeJsonValueProcessor.java:
public class RoomTypeJsonValueProcessor implements JsonValueProcessor
{
?
??? public Object processArrayValue(Object arg0, JsonConfig arg1)
??? {
?????? return null;
??? }
?
??? public Object processObjectValue(String key, Object value, JsonConfig arg2) {
??? ??? if (key.equals("dateBegin")) {
?????? ?????return DateUtil.getDateStr((Date) value);
??????? }
?
??????? if (key.equals("dateEnd")) {
??????????? return DateUtil.getDateStr((Date) value);
??????? }
??????? if (key.equals("liveDate")) {
??????????? return DateUtil.getDateStr((Date) value);
??????? }
?
??????? if (key.equals("leaveDate")) {
??????????? return DateUtil.getDateStr((Date) value);
??????? }
??????? if (key.equals("orderDate")) {
??????????? return DateUtil.getDateStr((Date) value,"yyyy-MM-dd HH:mm:ss");
??????? }
?
?????? return value;
??? }
?
}
?
JsonBean的用处上面很明确了,用了泛型:
JsonBean.java:
?
public class JsonBean<T> {
??? private int total;
?
??? private List<T> rows;
???
??? //getter&&setter
?
}
?
QueryCondition主要用在后台底层查值时传递参数
QueryCondition.java:
public class QueryCondition
{
??? private SortObject sortObj;
???
??? ?//getter&&setter
}
?
OrderQueryConditon具体业务的查询条件
OrderQueryConditon.java:
public class OrderQueryConditon extends QueryCondition
{
?
??? private Date dateBegin;
?
??? private Date dateEnd;
?
??? private String roomTypeId;
?
??? private Integer roomNum;
??
??? //getter&&setter
??
}
SortObject就两字段
SortObject.java:
public class SortObject
{
??? private String sortName;
???
??? private String sortType;
???
??? public SortObject(String sortName, String sortType) {
?????? this.sortName = sortName;
?????? this.sortType = sortType;
??? }
?
??? public SortObject() {
??? }??
???
??? ?//getter&&setter
}
?
还有struts的配置文件:
<action name="queryOrder" class="action.OrderQueryAction">
??????????? <result type="json">
??????????????? <param name="root">result</param>
??????????? </result>
??????? </action>
?
这里action配置一定要和前台请求的url一致
到此为止,列表查询是没问题了,但实际需求往往还要加入条件查询,其实上面后台代码已经加入了条件查询的部分,只是前台没有加入,可以如下加入条件:
?
<input type="text" name="condition.roomNum" id="condition.roomNum">
?
在查询按钮的onclick事件调用以下函数
?
function query (){
// 获取查询参数
var queryParams = $('#dataGrid').datagrid('options').queryParams;
?????? var roomNum = $.trim($("#condition.roomNum").val());
?????? // condition对应action的实例变量condition
?????? queryParams["condition.roomNum"] = roomNum;
?????? // 重置查询页数为1
?????? $('#dataGrid').datagrid('options').pageNumber = 1;
?????? var p = $('#dataGrid_queryYmjtcy').datagrid('getPager');
?????? if (p){
?????????? $(p).pagination({
????????????? pageNumber:1
?????????? });
?????? }
?????? // 刷新列表数据
?????? $('#dataGrid_queryYmjtcy').datagrid('reload');
??? }