`
tntxia
  • 浏览: 1507188 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

EXT FeedView 例子的Java改造

阅读更多

EXT的例子里面包含了一个FeedView的例子,是用EXT做一个Feed订阅器。

 

但EXT的例子是用PHP写的,我比较喜欢用Java,所以用Java对它进行了改造。

 

首先,做一个Feed订阅器必须要做一个订阅器。

 

feedproxy.jsp的页面如下:

 

<%@ page language="java" import="java.util.*,java.net.*,java.io.*,org.dom4j.*,org.json.simple.*"
	pageEncoding="UTF-8"%><%
	String feed = request.getParameter("feed");
	
	String coding = request.getParameter("coding");
	
	if(coding==null || coding.trim().length()==0){
		coding = "UTF-8";
	}

	URL url = new URL(feed);
	// 获取http连接对象   
	HttpURLConnection urlConnection = (HttpURLConnection) url
			.openConnection();

	urlConnection.connect();

	/**  
	 * 通过解析meta得到网页编码  
	 */
	// 获取网页源码(英文字符和数字不会乱码,所以可以得到正确<meta/>区域)   
	StringBuffer sb = new StringBuffer();
	String line;
	try {
		BufferedReader in = new BufferedReader(new InputStreamReader(
				url.openStream(),coding));
		while ((line = in.readLine()) != null) {
			sb.append(line);
		}
		in.close();
	} catch (Exception e) { // Report any errors that arise   
		System.err.println(e);
		System.err
				.println("Usage:   java   HttpClient   <URL>   [<filename>]");
	}
	String xmlcode = sb.toString();

	xmlcode = xmlcode.replaceAll("<content:encoded>", "<content>");
	xmlcode = xmlcode.replaceAll("</content:encoded>", "</content>");
	xmlcode = xmlcode.replaceAll("</dc:creator>", "</author>");
	xmlcode = xmlcode.replaceAll("<dc:creator", "<author");

	Document document = DocumentHelper.parseText(xmlcode);
	Element root = document.getRootElement(); 
	
	Document docFormat = DocumentHelper.createDocument();
   	Element rootFormat = docFormat.addElement("channel");// 创建根节点 
   	
   	List nodes = root.elements("channel");
   	
   	Element chanel = null;
   	
   	for (Iterator it = nodes.iterator(); it.hasNext();) {
   		chanel = (Element) it.next();
	}
	
	List nodes2 = chanel.selectNodes("item");
	
	JSONObject rootJson = new JSONObject();
	
	JSONArray arr = new JSONArray();
	
	rootJson.put("root",arr);
	
	
	for (Iterator it = nodes2.iterator(); it.hasNext();) {
   		Element item = (Element) it.next();
   		Element formatItem = rootFormat.addElement("item");
   		Element title = formatItem.addElement("title");
   		title.setText(item.element("title").getText());
   		JSONObject obj = new JSONObject();
   		obj.put("title",item.element("title").getText());
   		obj.put("author",item.element("author").getText());
   		obj.put("pubDate",item.element("pubDate").getText());
   		obj.put("link",item.element("link").getText());
   		obj.put("description",item.element("description").getText());
   		arr.add(obj);
	}
	
	System.out.println(rootJson.toString());
	
	out.print(rootJson.toString());
%>

 这是我写了一个JSP页面,来代码原本的PHP页面,用Dom4j来解析XML,用SimpleJSON来生成JSON字符串。

 

在例子的文件夹里面找到FeedGrid.js文件,把Store改成JSONStore。

 

this.store = new Ext.data.JsonStore({
    	// store configs
    	autoDestroy: true,
    	url: 'feed-proxy.jsp',
   		storeId: 'myStore',
    	// reader configs
    	root: 'root',
    	idProperty: 'title',
    	fields: ['title','author',{name:'pubDate', type:'date'}, 'link', 'description', 'content'],
    	autoLoad : true
	});

 

例子里面带有三个Feed地址,其实只有第二个可以用,其他两个都已经不能用了。

 

// add some default feeds
    feeds.addFeed({
        url:'http://bbs.maxthon.cn/rss.php?fid=56&auth=0',
        text: '傲游论坛'
    }, false, true);

    feeds.addFeed({
        url:'http://www.sencha.com/forum/external.php?type=RSS2',
        text: 'ExtJS.com Forums'
    }, true);

    feeds.addFeed({
        url:'http://news.qq.com/newsgn/rss_newsgn.xml',
        text: '腾讯新闻',
        coding:'GBK'
    }, true);

 这里,我把它们改成这样,哈哈,可以订阅腾讯的新闻了,呵呵。

0
2
分享到:
评论

相关推荐

    EXT和JAVA例子

    EXT和JAVA例子是一个结合了两种技术的实践项目,旨在帮助开发者深入理解如何在Java应用程序中使用EXT库。EXT是一个强大的JavaScript框架,主要用于构建富互联网应用(Rich Internet Applications, RIA)。它提供了...

    java-ext.zip_ext_ext java_ext 标签_ext java_java ext

    在这个名为"java-ext.zip_ext_ext java_ext 标签_ext java_java ext"的压缩包中,我们找到了关于如何在ExtJS中调用Java JSON服务的示例。 首先,让我们理解JSON(JavaScript Object Notation)。JSON是一种轻量级的...

    ext基本的控件例子ext基本的控件例子

    ext基本的控件例子ext基本的控件例子ext基本的控件例子ext基本的控件例子ext基本的控件例子

    ext+js.rar_ext_ext js_ext js java_java+ext

    标题中的"ext+js.rar_ext_ext js_ext js java_java+ext"似乎是在组合提及几个关键词,包括"ext","js",以及它们与"java"的关联。这些词汇主要涉及JavaScript的一个流行库——Ext JS,它是一个用于构建富客户端Web...

    ext js2.0 json java web 项目例子

    一个简单的ext java web项目 有gird form tree boder布局 如果有人觉的有用,会继续完善

    Ext一个登陆的小例子 (java+servlet)

    在本文中,我们将深入探讨如何使用EXT框架与Java Servlet技术构建一个简单的登录示例。EXT是一个强大的JavaScript前端框架,主要用于创建交互式、响应式的Web应用。而Java Servlet是后端服务器端的技术,用于处理...

    Ext 完整例子(含Excel导出)

    "Ext 完整例子(含Excel导出)"这个资源显然是一个包含完整的Ext应用程序示例,特别强调了支持Excel数据导出的功能。这通常涉及到在Web应用中集成数据处理和文件生成的能力。 首先,我们要理解Ext的核心概念。它基于...

    extjs3.0 ext3.0 ext文档 ex例子

    extjs3.0 ext3.0 ext文档 ext例子

    Ext实现java的面向对象实例

    在Java编程语言中,面向对象(Object-Oriented Programming,OOP)是一种核心特性,它提供了组织代码的有效方式,使得程序更加模块化、可维护和易于扩展。在Ext框架中,面向对象的概念得到了进一步的强化和扩展,为...

    oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree

    标题中的"oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree"似乎是一个组合字符串,它可能代表了某个项目或教程的文件结构。其中,“oa”可能是项目或系统的名称,而“ext”、“java”、“oa_ext”、“tree_...

    ext java登录案例

    在本文中,我们将深入探讨如何使用EXT Java技术创建一个登录案例。EXT Java是一个强大的JavaScript库,专门用于构建富客户端Web应用程序。它提供了丰富的组件库,包括数据网格、表单、图表等,使得开发者能够轻松...

    Ext_Demo.rar_DEMO_Ext demo_ext_demo_java ext demo_javaext demo

    【描述】"java结合ext的例子,方便大家学习,功能简单但很实用" 提示我们这个项目的主要目的是教学。它演示了如何在Java应用中利用EXT.js进行前端开发,可能包括数据绑定、用户界面组件的使用、以及与后端服务器的...

    ext的小例子小例子ext的小例子小例子

    标题中多次提到"小例子",这可能是指一系列EXT的实践示例,通过这些小例子,开发者可以学习如何使用EXT的各种组件和功能。例如,一个"小例子"可能展示如何创建一个基本的EXT应用,包含一个简单的窗口或者面板;另一...

    ext分页客户端demo Java js

    在这个"ext分页客户端demo Java js"的示例中,我们将探讨EXTJS如何实现客户端分页,以及如何与后端(如Java)进行数据交互,而无需在服务器端编写额外的Java代码。 EXTJS中的分页组件主要由Ext.grid.Panel和Ext....

    ext入门程序登陆例子

    【标题】:“EXT入门程序登录例子” EXT是一个强大的JavaScript库,用于构建富客户端Web应用程序。这个入门程序是一个基于EXTJS的登录示例,它在不依赖数据库的情况下展示了用户登录的基本功能。EXTJS以其丰富的...

    java毕业设计,ssh+ext例子

    SSH框架+Ext技术做前台显示的客户关系管理系统 营销管理:客户开发计划、销售机会管理 二、客户管理:客户信息管理、客户流失管理 三、服务管理:服务创建、服务分配、服务反馈、服务归档 四、统计报表:客户服务...

    Ext4.0官方例子文档(全)

    Ext4.0官方例子文档(全)Ext4.0 例子 api 帮助文档

    ext几个经典例子

    这里面包含几个ext几个经典例子包括,带图片的下拉框等。还有类似google搜索框代码,jtgrid 控件等。

    几个简单的 ext初学例子

    很适合初学者学习ext的小例子。在工程已经部署好了,如果没入门的可以好好看看怎么进行部署。

    ext4 mvc 例子

    EXT4是一种广泛使用的Linux文件系统,它在2008年被引入到主流的Linux内核中,以提供更高效、可靠和大容量的存储管理。EXT4在EXT3的基础上进行了...这个例子对于深入理解EXT4和MVC模式在实际开发中的应用非常有帮助。

Global site tag (gtag.js) - Google Analytics