Struts2 结合easyui datagrid的问题
由于刚学习struts2不久,所以还请java达人们看看这个问题。先贴代码吧。
JSP页面片段:
<script>
$(function(){
$('#test').datagrid({
title:'My DataGrid',
iconCls:'icon-save',
width:700,
height:600,
nowrap: true,
autoRowHeight: false,
striped: true,
collapsible:true,
url:'/json/showall'
.................
................
</script>
struts.xml配置文件片段:
<package name="jsoncl" namespace="/json" extends="json-default">
<action name="showall" class="com.aaa.actions.ShowAllAction">
<result name="success" type="json">/WEB-INF/result.jsp</result>
</action>
</package>
action:
public class ShowAllAction extends ActionSupport implements ServletResponseAware{
private static final long serialVersionUID = 1L;
private HttpServletResponse response;
public String execute() throws Exception{
String str = "{'total':1,'rows':[{'code':'001','name':'Name 1','addr':'Address 11','col4':'col4 data'}]}";
PrintWriter pw = response.getWriter();
pw.print(str);
return SUCCESS;
}
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response = response;
}
}
问题来了,action确实是运行的,没抱错。但是在easyui的datagrid中却没有显示那一条记录。为什么呢?
------解决方案--------------------你用FIREFOX的FIREBUG调试下,看下响应是否正确,另外好像JSON的字符串要用双引号。
------解决方案--------------------如果要拼字符串方式的话。。。我记得格式不是这么拼的,total\row是不用'号的。。你可以上官网看看例子
------解决方案--------------------LZ,自己debug进去看下,返回是否有值
然后你的datagrid,都不设置表头的??
------解决方案--------------------那个你的return 肿么的?
------解决方案--------------------楼主的格式没有问题。唯一的问题就是你发给客户端的不是json而是字符串。你要在获得输出流之前设置响应头。response.setContentType("application/json");声明json而不是字符串。这样datagrid才能解析