下面的示例演示如何使用spring web mvc框架生成rss源。 首先使用eclipse ide,并按照以下步骤使用spring web framework开发基于动态表单的web应用程序:
com.h3.springmvc
包下创建三个java类:rssmessage
, rssfeedviewer
和 rsscontroller
。maven
存储库页面下载 rome 库及其依赖项rome-utils,jdom和slf4j。和所需的依赖关系存并将它们放在classpath
中。src
文件夹下创建属性文件messages.properties
。完整的项目文件目录结构如下所示 -
rssmessage.java 的代码如下所示 -
package com.h3.springmvc;
import java.util.date;
public class rssmessage {
string title;
string url;
string summary;
date createddate;
public string gettitle() {
return title;
}
public void settitle(string title) {
this.title = title;
}
public string geturl() {
return url;
}
public void seturl(string url) {
this.url = url;
}
public string getsummary() {
return summary;
}
public void setsummary(string summary) {
this.summary = summary;
}
public date getcreateddate() {
return createddate;
}
public void setcreateddate(date createddate) {
this.createddate = createddate;
}
}
rssfeedviewer.java 的代码如下所示 -
package com.h3.springmvc;
import java.util.arraylist;
import java.util.list;
import java.util.map;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import org.springframework.web.servlet.view.feed.abstractrssfeedview;
import com.rometools.rome.feed.rss.channel;
import com.rometools.rome.feed.rss.content;
import com.rometools.rome.feed.rss.item;
public class rssfeedviewer extends abstractrssfeedview {
@override
protected void buildfeedmetadata(map<string, object> model, channel feed,
httpservletrequest request) {
feed.settitle("h3point dot com");
feed.setdescription("java h3 and examples");
feed.setlink("http://www.h3.com");
super.buildfeedmetadata(model, feed, request);
}
@override
protected list<item> buildfeeditems(map<string, object> model,
httpservletrequest request, httpservletresponse response) throws exception {
list<rssmessage> listcontent = (list<rssmessage>) model.get("feedcontent");
list<item> items = new arraylist<item>(listcontent.size());
for(rssmessage tempcontent : listcontent ){
item item = new item();
content content = new content();
content.setvalue(tempcontent.getsummary());
item.setcontent(content);
item.settitle(tempcontent.gettitle());
item.setlink(tempcontent.geturl());
item.setpubdate(tempcontent.getcreateddate());
items.add(item);
}
return items;
}
}
rsscontroller.java 文件中的代码如下所示 -
import java.util.arraylist;
import java.util.date;
import java.util.list;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.servlet.modelandview;
@controller
public class rsscontroller {
@requestmapping(value="/rssfeed", method = requestmethod.get)
public modelandview getfeedinrss() {
list<rssmessage> items = new arraylist<rssmessage>();
rssmessage content = new rssmessage();
content.settitle("spring教程");
content.seturl("http://www.h3/spring");
content.setsummary("spring tutorial summary...");
content.setcreateddate(new date());
items.add(content);
rssmessage content2 = new rssmessage();
content2.settitle("spring mvc教程");
content2.seturl("http://www.h3/spring_mvc");
content2.setsummary("spring mvc tutorial summary...");
content2.setcreateddate(new date());
items.add(content2);
modelandview mav = new modelandview();
mav.setviewname("rssviewer");
mav.addobject("feedcontent", items);
return mav;
}
}
generaterssfeed-servlet.xml 配置如下所示 -
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.h3.springmvc" />
<bean class="org.springframework.web.servlet.view.beannameviewresolver" />
<bean id="rssviewer" class="com.h3.springmvc.rssfeedviewer" />
</beans>
上面的代码中创建了一个rss feed pojo rssmessage和一个rss message viewer,它扩展了abstractrssfeedview
并覆盖了它的方法。 在rsscontroller
中,生成了一个示例rss feed
。
完成创建源和配置文件后,发布应用程序到tomcat服务器。
现在启动tomcat服务器,当访问url => http://localhost:8080/generaterssfeed/rssfeed , 如果spring web应用程序没有问题,应该看到以下结果: