这是前几天的研究,项目中用到了。ssh框架搭建的服务器,Android的客户端之间的数据交互,就写了一个简单的登录。 Struts,hibnate,Spring的环境搭建就不说了,基本上都会了,现在主要说简单的配置。 struts.xml 的配置 struts 要加的几个关键jar文件 *
gson-2.2.4.jar //google 官方的json
struts2-json-plugin-2.3.15.1.jar //struts json 需要的jar
<package name="struts2" extends="json-default"> //继承struts的json
<action name="user_*" class="loginaction" method="{1}">
<result type="json"></result>
<!--<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>-->
</action>
</package>
Action中的 方法
list = usi.findAll(); //查询到的集合
Gson gson = new Gson();
try { json = gson.toJson(list, new TypeToken<List<User>>() { }.getType()); //封装成json (String) 类型的
this.response.setContentType("text/json;charset=utf-8");
response.setCharacterEncoding("UTF-8"); //设置输出字符集格式
byte[] jsonBytes = json.toString().getBytes("utf-8"); //转换成字节
response.setContentLength(jsonBytes.length);
response.getOutputStream().write(jsonBytes); //输出数据
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Android 客户端获取到数据以后 需要转换 需要把接收到的数据 转换成对象集合,和服务器Action 返回的对象一样
list=gson.fromJson(msg.obj.toString(),new TypeToken<ArrayList<User>>() {}.getType());