2012-06-10 59 views
0

我想使用struts2-jquery網格插件。 當調試我的gridmodel得到正確更新,但沒有得到顯示在網格上。 這是我的動作類:struts2 jQuery網格:數據不顯示在網格上

private List<Customer> gridModel; 
    private Integer    rows   ; 

    private Integer    page   ; 

    private String    sord; 

    private String    sidx; 

    private String    searchField; 

    private String    searchString; 

    private String    searchOper; 

    private Integer    total   ; 

    private Integer    records  ; 

public String execute() throws Exception{ 
    try { 
    List<Customer> list = new ArrayList<Customer>; 
    for (int i=0; i<3; i++) { 
     Customer cust = new Customer("myName", 20, "myAdress", "23651336"); 
     list.add(cust); 
    } 
    setGridModel(list); 
    setRecords(list.size()); 
    total =(int) Math.ceil((double)records/(double)rows); 
    } catch(Exception e) { 
     log.error("Error in JSON data : " +e.getMessage()); 
    } 
    return SUCCESS; 

} 

public List<Customer> getGridModel() { 
    return gridModel; 
} 

public Integer getPage() { 
    return page; 
} 

public void setPage(Integer page) { 
    this.page = page; 
} 

public String getSearchField() { 
    return searchField; 
} 

public void setSearchField(String searchField) { 
    this.searchField = searchField; 
} 

public void setGridModel(List<Customer> gridModel) { 
    this.gridModel = gridModel; 
} 

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 Integer getRecords() { 
    return records; 
} 

public void setRecords(Integer records) { 
    this.records = records; 

     if (this.records > 0 && this.rows > 0) 
     { 
      this.total = (int) Math.ceil((double) this.records/(double) this.rows); 
     } 
     else 
     { 
      this.total = 0; 
     } 
} 

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 String getSearchString() { 
    return searchString; 
} 

public void setSearchString(String searchString) { 
    this.searchString = searchString; 
} 

public Integer getRows() { 
    return rows; 
} 

public void setRows(Integer rows) { 
    this.rows = rows; 
} 

我添加到我的jsp以下網格定義:

<s:url id="remoteurl" action="jsontable"/> 
<sjg:grid 
    id="gridtable" 
    caption="Listes " 
    dataType="json" 
    href="%{remoteurl}" 
    pager="true" 
    gridModel="gridModel" 
    rowList="10,15,20" 
    rowNum="15" 
    rownumbers="true" 
> 
    <sjg:gridColumn name="name" index="name" title="Name" /> 
    <sjg:gridColumn name="age" index="age" title="Age"/> 
    <sjg:gridColumn name="adress" index="adress" title="Adress" /> 
    <sjg:gridColumn name="tel" index="tel" title="Tel" /> 
</sjg:grid> 

在struts.xml中,我宣佈我的行動與結果類型JSON

<package name="default" extends="json-default,struts-default" namespace="/"> 

    <result-types> 
     <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> 
     <result-type name="json" class="org.apache.struts2.json.JSONResult" /> 
    </result-types> 

    <action name="jsontable" class="com.web.action" method="execute" > 
     <result name="success" type = "json"></result> 
    </action> 

</package> 

請你能告訴我我失蹤的是什麼

+0

控制檯中的任何JavaScript錯誤?您可以手動請求您的JSON操作並接收有效的JSON響應嗎? – Johannes

+0

Thx爲您的重播。沒有javascript錯誤。而且我沒有JSON響應,我認爲問題出在JSON轉換 – Sarroura

+0

您的類是否擴展任何類?你也可以告訴我們當jsontable被調用/使用LiveHTTPHeader或任何你使用的時候返回什麼/ – batbaatar

回答

0

問題是在我把我的行動放在一個新的集體訴訟中,而不是在另一個行動中。