最近在研究easyUi 和struts2的使用,本以为struts2会很支持easyui,但是很不幸的是struts2还是一视同仁的让我们的easyui变成json去使用。
如果是这样,我们就没有必要把事情想的那么复杂了,我们只要让其返回一个 json格式的数据就可以了。
需要的JAR包,都需要,我已经试过,如果少引一个会报异常的。
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
struts2-json-plugin-2.3.12.jar
json-lib-2.3-jdk15.jar
配置文件:
<package name="behind-json" extends="json-default" namespace="/">
<!-- 获取信息 -->
<action name= "findQaInfo" class="qaA0001" method="findQaList">
<result name="success" type="json">
<!-- 这里的实现很骂娘,的确如其他网友说的那样,如果我们用了include而不是exclude会很麻烦。 -->
<param name="excludeProperties">qaDao,qaBean,total,qaList,total</param>
</result>
</action>
</package>
java代码:
package com.sa.web.behind.action;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sa.web.bean.QaBean;
import com.sa.web.dao.service.QaDao;
/**
* 后台管理首页
*/
public class QaA0001 extends ActionSupport {
/** 序列 */
private static final long serialVersionUID = 1L;
/** 设置Qa的Dao对象 */
QaDao qaDao;
/** 实例QaBean */
QaBean qaBean;
/** 设置Qa集合 */
List<QaBean> qaList;
/** easyUi对象*/
private JSONArray rows;
/** 信息总数*/
private int total=0;
public String init() throws Exception {
return "success";
}
public String findQaList() throws Exception{
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("application/json");
qaList = qaDao.getQaInfo();
rows = JSONArray.fromObject(qaList);
total = qaList.size();
return "success";
}
public QaDao getQaDao() {
return qaDao;
}
public void setQaDao(QaDao qaDao) {
this.qaDao = qaDao;
}
public QaBean getQaBean() {
return qaBean;
}
public void setQaBean(QaBean qaBean) {
this.qaBean = qaBean;
}
public List<QaBean> getQaList() {
return qaList;
}
public void setQaList(List<QaBean> qaList) {
this.qaList = qaList;
}
public JSONArray getRows() {
return rows;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
easyUi部分:
$('#grid_qa').datagrid({ url:"findQaInfo.html", fit:true, fitColumns:true, singleSelect:true, columns:[[ {field:'qaId',title:'问答ID',width:120,resizable:false,align:'center'}, {field:'qContext',title:'问题内容',width:240,resizable:false,align:'center'}, {field:'aContext',title:'回答内容',width:130,resizable:false,align:'center'}]], toolbar:'#toolbar', pagination:true, });