1. maven的pom.xml的配置
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- rss -->
<dependency>
<groupId>net.java.dev.rome</groupId>
<artifactId>rome</artifactId>
<version>1.0.0</version>
</dependency>
2. web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>igrp</display-name>
<!-- spring context loader config -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>igrp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>igrp</servlet-name>
<url-pattern>/</url-pattern>
<url-pattern>/m/*</url-pattern> // 用于MOBILE的访问
<url-pattern>/t/*</url-pattern> // 用于TABLET的访问
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
// RSS的配置主要在igrp-servlet.xml中
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/igrp-servlet.xml,/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
3. xxx-servlet.xml的配置
<!-- 激活@Controller模式 -->
<context:annotation-config />
<!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 需要更改 -->
<context:component-scan base-package="com.igrp.web.controller" />
<!-- mobile mvc config -->
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="org.springframework.mobile.device.site.SitePreferenceWebArgumentResolver" />
<bean class="org.springframework.mobile.device.DeviceWebArgumentResolver" />
</mvc:argument-resolvers>
</mvc:annotation-driven>
<mvc:interceptors>
<!-- Resolve the device which has generated the request -->
<bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
<!-- User's site preference -->
<bean class="org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor" />
<!-- Redirects users to the device specific site -->
<bean class="org.springframework.mobile.device.switcher.SiteSwitcherHandlerInterceptor" factory-method="urlPath">
<constructor-arg value="/m" />
<constructor-arg value="/t" />
<constructor-arg value="/igrp" />
</bean>
</mvc:interceptors>
<!-- Device aware view resolving -->
<bean id="liteDeviceDelegatingViewResolver" class="org.springframework.mobile.device.view.LiteDeviceDelegatingViewResolver">
<constructor-arg>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</constructor-arg>
<property name="mobilePrefix" value="m/" />
<property name="tabletPrefix" value="t/" />
<property name="enableFallback" value="true" />
</bean>
<!-- rss configuration -->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="rss" value="application/rss+xml" />
</map>
</property>
<property name="defaultViews">
<list>
<bean class="com.igrp.rss.CustomRssViewer" />
</list>
</property>
<property name="ignoreAcceptHeader" value="true" />
</bean>
4. controller
@Controller
public class RSSFeedController extends GenericController {
@RequestMapping(value="/rssfeed", method = RequestMethod.GET)
public ModelAndView getFeedInRss() {
List<RSSFeed> items = new ArrayList<RSSFeed>();
RSSFeed feed1 = new RSSFeed();
feed1.setTitle("Spring tutorial1");
feed1.setUrl("http://www.mkyong.com/spring-mvc/tutorial-1");
feed1.setSummary("Tutorial 1 summary ...");
feed1.setCreateDate(new Date());
items.add(feed1);
RSSFeed feed2 = new RSSFeed();
feed2.setTitle("Spring MVC Tutorial 2");
feed2.setUrl("http://www.mkyong.com/spring-mvc/tutorial-2");
feed2.setSummary("Tutorial 2 summary ...");
feed2.setCreateDate(new Date());
items.add(feed2);
ModelAndView mav = new ModelAndView();
mav.setViewName("rssViewer");
mav.addObject("feedContent", items);
return mav;
}
}
5. RSS的类:com.igrp.rss.CustomRSSViewer
public class CustomRssViewer extends AbstractRssFeedView {
@Override
protected List<Item> buildFeedItems(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response) throws Exception {
@SuppressWarnings("unchecked")
List<RSSFeed> listContent = (List<RSSFeed>) model.get("feedContent");
List<Item> items = new ArrayList<Item>(listContent.size());
for(RSSFeed 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.getCreateDate());
items.add(item);
}
return items;
}
@Override
protected void buildFeedMetadata(Map<String, Object> model, Channel feed,
HttpServletRequest request) {
feed.setTitle("Mkyong Dot Com");
feed.setDescription("Java Tutorials and Examples");
feed.setLink("http://www.mkyong.com");
super.buildFeedMetadata(model, feed, request);
}
}
public class RSSFeed {
private String title;
private String url;
private String summary;
private Date createDate;
// setter and getter
}
分享到:
相关推荐
在“springmvc 改造”这个主题中,我们主要关注的是如何对现有的SpringMVC配置进行调整,以满足特定的需求或优化应用程序的行为。下面我们将详细探讨SpringMVC配置的几个关键方面: 1. **路径配置**: 在SpringMVC...
在本项目中,我们利用SpringMVC来实现一个简单的用户管理模块,涵盖了用户的基本操作,如添加、删除、修改和查询。 【用户管理模块】 用户管理模块是许多系统的核心部分,它负责处理用户的注册、登录、信息更新和...
REST(Representational State Transfer)的核心理念是将网络资源作为服务的主体,通过统一的接口进行操作。主要由以下几个核心概念组成: 1. **资源(Resource)**:网络上的每一个实体都可以被看作一个资源,例如...
SpringMVC 提供了 MockMVC 工具,可以方便地对 Controller 进行单元测试,无需部署到服务器。 总结,SpringMVC 以其强大的功能和灵活性,成为了 Java Web 开发的主流框架之一。通过理解并熟练掌握上述知识点,...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。它是Java开发人员在构建Web应用时的...通过学习,你可以了解到如何利用SpringMVC的强大功能来构建高效、可维护的Web应用程序。
在这个版本中,你可以学习到如何使用@RequestMapping、@Autowired等注解简化代码,以及如何利用SpringMVC提供的工具和库来实现更复杂的web功能。 总的来说,这份"springMVC资料"涵盖了SpringMVC的基础知识、高级...
- **事务管理**:SpringMVC和iBatis整合后,可以利用Spring的声明式事务管理,简化事务控制。 - **缓存支持**:iBatis支持二级缓存,结合Spring的缓存抽象,可以实现更高效的缓存策略。 - **AOP编程**:Spring...
SpringMVC 是一款基于 Java 的轻量级 Web 开发框架,是 Spring 框架的重要组成部分,用于构建 Web 应用程序。...通过深入学习和实践,开发者可以更好地利用 SpringMVC 构建高效、健壮的 Web 应用。
这份文档可能从快速入门示例开始,引导读者理解基本概念,然后逐步深入,探讨更高级的话题,如拦截器、AOP(面向切面编程)在SpringMVC中的应用,以及如何集成WebSocket进行实时通信。此外,它可能还会讨论最佳实践...
此外,SpringMVC支持数据绑定和验证,可以通过`@ModelAttribute`注解将请求参数绑定到Java对象,并利用`@Valid`和`Validator`接口进行数据验证。 对于异常处理,SpringMVC提供了`@ExceptionHandler`注解,可以用来...
SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。...通过这个实例,你可以了解如何利用SpringMVC的注解驱动、依赖注入特性,以及如何与MySQL数据库无缝集成,为开发高效、健壮的Web应用奠定基础。
SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...
2. **配置文件**:SpringMVC的配置通常在XML文件(如`servlet-context.xml`)中进行,包括视图解析器、模型-视图映射、拦截器、以及bean的定义。这些配置会指导SpringMVC如何处理请求和响应。 3. **模型(Model)**:...
SpringMVC中的Service层可以利用SQLiteJDBC进行数据操作,通过Repository接口封装数据访问逻辑,保持业务逻辑与数据访问的分离。 **集成步骤** 1. **添加依赖**:在项目的pom.xml文件中引入SpringMVC和SQLiteJDBC...
SpringMVC是Spring框架的一部分,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC 5.0...通过理解和掌握这些关键特性,你将能够更好地利用SpringMVC构建高质量的Web应用。
EXTJS还提供了强大的数据包装和远程数据通信机制,如Ajax和Store,能够轻松与后端服务如SpringMVC+Hibernate进行交互。 【整合】 SpringMVC+Hibernate+EXT的整合是Web开发中的常见模式,用于构建高效、功能丰富的...
SpringMVC支持使用注解进行开发,如`@Controller`、`@RequestMapping`、`@Service`、`@Autowired`等,简化了XML配置。 6. **异常处理** 可以通过`@ExceptionHandler`注解自定义全局异常处理,或者配置`...
在本项目中,我们主要探讨的是如何将SpringMVC、MyBatis、PostgreSQL数据库以及Maven构建工具进行有效的整合,以实现一个高效且模块化的Web应用开发环境。以下是关于这些技术及其整合的关键知识点的详细说明: **1....
- SpringMVC支持模型属性的数据绑定,并可集成Hibernate Validator进行数据验证。 12. **上传文件**: - 使用MultipartFile接口处理文件上传,配置MultipartResolver来处理multipart请求。 13. **异常处理**: ...