`

Struts2_Android(2.2)_模拟数据访问项目 JSON项目

 
阅读更多
<!-- 允许客户端联网 -->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

package com.example.coffeeclient;

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

	private ListView listView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.listView = new ListView(this);
		// 调试地址 10.0.2.2
		String url = "http://10.0.2.2:8080/coffeeServer/getCoffeeList";
		ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, getData(url));
		this.listView.setAdapter(aa);
		setContentView(this.listView);
	}

	// 获得服务端数据(服务端通过PrintWriter输出JSON数组)
	private List<String> getData(String url) {

		List<String> list = new ArrayList<String>();
		String result = "";
		HttpURLConnection conn = null;
		try {
			URL _url = new URL(url);
			// 打开连接
			conn = (HttpURLConnection) _url.openConnection();
			// 创建一个字节数组
			byte[] data = new byte[conn.getContentLength()];
			// 读取输入流中的数据
			conn.getInputStream().read(data);
			result = new String(data);
			JSONArray arr = new JSONArray(result);
			for (int i = 0; i < arr.length(); i++) {
				JSONObject o = arr.getJSONObject(i);
				String s = " " + o.getString("cname") + "  "
						+ o.getDouble("cmoney") + " 元";
				list.add(s);
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}finally{
			//关闭连接
			conn.disconnect();
		}
		return list;
	}
}

package com.web;

import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.struts2.interceptor.ServletResponseAware;

import com.bll.TbGoodService;
import com.bll.TbGoodServiceImpl;
import com.entity.TCoffee;
import com.opensymphony.xwork2.ActionSupport;

public class TbGoodAction extends ActionSupport implements ServletResponseAware {
	
	private TbGoodService tbGoodService = new TbGoodServiceImpl();
	private HttpServletResponse response;
	
	public String findAll() throws Exception{
		
		//从业务层拿到数据
		List<TCoffee> list = this.tbGoodService.findAll();
		
		this.response.setContentType("text/html;charset=UTF-8");
		
		//使用PrintWriter对象输出JSON数组
		PrintWriter out = this.response.getWriter();
		//创建JSON数组
		JSONArray arr = new JSONArray();
		for(TCoffee t : list){
			//创建JSON对象
			JSONObject g=new JSONObject();
			//设置属性
			g.put("cid", t.getCid());
			g.put("cname", t.getCname());
			g.put("cmoney", t.getCmoney());
			//添加JSON对象到JSON数组
			arr.add(g);
		}
		out.print(arr);
		System.out.println(arr);
		return null;
	}

	public void setServletResponse(HttpServletResponse response) {
		// TODO Auto-generated method stub
		this.response = response;
	}
	
}
  • an.rar (1.5 KB)
  • 下载次数: 0
分享到:
评论

相关推荐

    Struts2_JSON_Demo

    在"Struts2_JSON_Demo"这个项目中,我们将看到如何在Struts2框架中集成JSON支持,以实现前后端的数据交互。以下是一些关键的知识点: 1. **Struts2 JSON插件**:Struts2提供了内置的JSON插件,允许我们直接将Action...

    json_struts2.rar_JSON java_SSH json Struts2_java json_json_strut

    在Java编程中,JSON常用于前后端数据交互,特别是与Struts2框架结合时,可以实现服务器端与客户端之间的数据高效传输。 Struts2是一个开源的MVC框架,它在SSH(Spring、Struts2、Hibernate)集成开发中扮演着控制器...

    Struts2_jquery_json1.0.zip_Struts2 heloword_struts2_struts2 jque

    在HTML页面中,我们可以使用jQuery的`$.ajax`或`$.getJSON`方法发起Ajax请求,获取Struts2 Action返回的JSON数据: ```html &lt;script src="jquery.js"&gt;&lt;/script&gt; $(document).ready(function() { $.getJSON('...

    struts2_spring_json.rar_liferay struts2 json_portlet json_spring

    在标题和描述中提到的"struts2_spring_json.rar"是一个关于如何在Liferay中利用Struts2和Spring框架处理JSON数据的示例应用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端交互,...

    JSON.rar_JSON Hibernate_extjs_json struts ext_jsp json extjs_str

    在这个项目中,开发者可能会遇到如何配置Struts2的JSON结果类型、如何在Hibernate中序列化和反序列化JSON对象、如何在ExtJS中解析和展示JSON数据等问题。理解并熟练掌握这些技术的集成和使用,对于开发高效、响应式...

    struts2所需的包和Struts2_json所需包

    在标题和描述中提到的"struts2所需的包和Struts2_json所需包",主要是指为了实现Struts2框架与JSON数据交互所需要的一系列依赖库。这些包包括但不限于以下几部分: 1. **Struts2核心库**:这是Struts2的基础,包含`...

    Struts2+Json+Android简单实现

    在“JSONDemo”项目中,我们将看到如何在Android应用中处理接收到的JSON数据。通常,Android开发者会使用诸如Gson或Jackson这样的库来解析JSON,将数据转化为Java对象,或者将Java对象转化为JSON字符串发送到服务器...

    struts2_json例子工程

    最后,`课堂笔记20151107-json.txt`可能是学习过程中的笔记,记录了如何配置和使用Struts2的JSON功能,可能包括了如何在JSP页面中使用AJAX请求JSON数据,以及如何解析和显示这些数据。 总结来说,这个“struts2_...

    ajaxFileUpload_Struts2_json

    同时,通过设置Action的返回类型为`json`,我们可以使Struts2以JSON格式返回响应数据,这对于前端AJAX调用非常有用,因为它可以直接解析JSON数据并更新页面内容。 在前端,我们需要创建一个HTML表单,包含一个或多...

    K8_Struts2_EXP 20170310

    然而,随着时间的推移,Struts2框架被发现存在多个安全漏洞,这些漏洞可能导致严重的后果,如远程代码执行、数据泄露等。"K8_Struts2_EXP 20170310"是针对这些问题的一款检测工具,主要用于识别和预防Struts2框架的...

    K8_Struts2_漏洞利用工具解压密码:k8team

    Struts2是一款非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,帮助开发者构建动态、数据驱动的Web应用程序。然而,随着时间的推移,Struts2框架出现了一些安全漏洞,其中最著名的是S2-045、...

    struts2_ajax_json

    在这个"struts2_ajax_json"项目中,我们将探讨如何将Struts2与Ajax和JSON结合,实现异步数据交互。 首先,让我们了解Struts2如何支持Ajax请求。Struts2提供了`&lt;s:a&gt;`、`&lt;s:submit&gt;`等标签,它们可以通过添加`ajax=...

    Struts2_day03笔记

    学习Struts2第三天笔记

    struts2_S016_S017_repair

    官方建议修复方案:升级到最新版本 struts-2.3.15.1 但通常现有系统升级,可能导致不稳定及与其他框架比如spring等的不兼容,成本较高。 鉴于此本人整理了一种既可以不用升级现有struts版本,有能完美解决这两个...

    struts2_jar

    这个"struts2_jar"压缩包很可能是包含了Struts2框架的核心组件和其他相关依赖,以方便开发者快速搭建和运行Struts2项目。 在Struts2框架中,以下是一些核心知识点: 1. **Action类**:Struts2中的Action类是业务...

    struts2-json-plugin-2.2.3.1

    struts2-json-plugin-2.2.3.1能用的包

Global site tag (gtag.js) - Google Analytics