问题描述
<result name="homePageTable" type="json"></result>发现在项目中没有引用struts2-Json-plugin的jar包然后struts2中有get 方法的都能获取然后使用了如下的方法<result name="homePageTable" type="json"> <param name="includeProperties"> dataRows.*, curPage,totalPages,totalRecords </param> <param name="noCache">true</param> <param name="ignoreHierarchy">false</param></result>我不想返回那么多 按我需要的去返回 但是前台不能得到内容,是否是因为struts2-Json-plugin包的问题 ?
解决方案
如果你能够返回json,这就说明struts与json的插件是没有问题的,一般情况下,json的返回常常使用<param name="root">field</param>来指定要返回的域,这样的话就需要做一个封装。你那样写也是可以的,但是最终的json格式可能会改变,还是用浏览器直接访问以下这个action,看看最终返回的是什么吧
解决方案二:
下面是我写的<action name="user_update" class="personAction" method="updateUser"><result name="success" type="json"> <param name="root">p</param> </result> </action>后台部分代码HttpServletRequest request = ServletActionContext.getRequest();// HttpServletResponse response=ServletActionContext.getResponse();HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);String orgId = request.getParameter("orgId");// 获取组织idList<Person> list=personService.querySortPerson(orgId);PrintWriter out = null;try {response.setContentType("text/plain");response.setCharacterEncoding("utf-8");out = response.getWriter();out.write(JSONArray.fromObject(list).toString());out.flush();out.close();} catch (IOException e) {e.printStackTrace();}可以参考一下!
解决方案三:
1.引用plugin2.extends="json-default"3.action中有木有getProperty4.property有没有赋值5.建议:所有要返回的数据封装到map中返回(因为你这是个分页)