這裏是代碼。我已經將TestParent從抽象類改爲普通類。現在執行方法寫在TestAction中。雖然我運行這個網格沒有得到填充,但我看到用getGridData方法編寫的打印語句的控制檯。
TestParent.java
public class TestParent extends ActionSupport{
protected List<Map<String, Object>> gridModel;
protected Integer rows = 0;
protected Integer page = 0;
protected String sord;
protected String sidx;
protected String searchField;
protected String searchString;
protected String searchOper;
protected Integer total = 0;
protected Integer records = 0;
public List<Map<String, Object>> getGridModel() {
return gridModel;
}
public void setGridModel(List<Map<String, Object>> gridModel) {
this.gridModel = gridModel;
}
public Integer getRows() {
return rows;
}
public void setRows(Integer rows) {
this.rows = rows;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public String getSord() {
return sord;
}
public void setSord(String sord) {
this.sord = sord;
}
public String getSidx() {
return sidx;
}
public void setSidx(String sidx) {
this.sidx = sidx;
}
public String getSearchField() {
return searchField;
}
public void setSearchField(String searchField) {
this.searchField = searchField;
}
public String getSearchString() {
return searchString;
}
public void setSearchString(String searchString) {
this.searchString = searchString;
}
public String getSearchOper() {
return searchOper;
}
public void setSearchOper(String searchOper) {
this.searchOper = searchOper;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Integer getRecords() {
return records;
}
public void setRecords(Integer records) {
this.records = records;
}
}
TestAction.java
public class TestAction extends TestParent{
@Override
public String execute(){
int to = (rows * page);
int from = to - rows;
gridModel = getGridData();
records = getTotalNumberOfRecords();
//calculate the total pages for the query
total =(int) Math.ceil((double)records/(double)rows);
return SUCCESS;
}
protected List<Map<String, Object>> getGridData() {
String sql = "Select * from Sales.Customer";
List<Map<String, Object>> map =null;
try {
map = DBConnect.getResult(sql, DBType.MAIN_DB);
System.out.println("gridModel data :");
for(Map<String,Object> m :map){
System.out.print("Customer_ID : "+m.get("Customer_ID")+" ");
System.out.println("FirstName : "+m.get("FirstName"));
}
} catch (DBException e) {
System.out.println(e.getMessage());
}
return map;
}
protected Integer getTotalNumberOfRecords() {
String sql = "select count(*) as count from Sales.Customer";
int count = 0;
try {
List<Map<String, Object>> map = DBConnect.getResult(sql,
DBType.MAIN_DB);
count = (Integer) map.get(0).get("count");
System.out.println("no of records : " + count);
} catch (DBException e) {
System.out.println(e.getMessage());
}
return count;
}
}
在struts.xml中:
<action name="testList" class="com.mis.struts.action.TestAction">
<result name="success" type="json" />
</action>
test.jsp的:
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
<sjg:grid
id="gridtable"
caption="Customers"
dataType="json"
href="testList"
pager="true"
gridModel="gridModel"
rowList="10,15,20"
rowNum="15"
rownumbers="true"
multiselect="true"
viewrecords="true"
>
<sjg:gridColumn name="Customer_ID" index="Customer_ID" title="ID" formatter="integer" sortable="false" hidden="true" />
<sjg:gridColumn name="FirstName" index="FirstName" title="First Name" sortable="true" search="true"/>
<sjg:gridColumn name="LastName" index="LastName" title="Last Name" sortable="false"/>
<sjg:gridColumn name="Address" index="Address" title="Address" sortable="false"/>
<sjg:gridColumn name="Email" index="Email" title="Email" sortable="false"/>
</sjg:grid>
你可以顯示兩個動作?請更新您的帖子,並附上行動代碼 – 2011-12-23 12:48:16
我已經添加了兩項操作。請幫忙 – Megna 2011-12-27 05:15:18