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

Spring2.5 MVC annoation使用

阅读更多

Spring2.5比Spring2.0改善最大的亮点就在于annoation应用于MVC部分,大大减少了配置文件,刚刚完成一个小例子,用起来蛮舒服的。

运行环境 :JDK1.5  TOMCAT5.5

 

先来看看配置文件

1.applicationContext.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <annotation-config /><!--annoation的配置,不写包名默认搜索全部-->
</beans>

2.web.xml ,这个文件看起来似乎没有多大的变化,不过要注意模板~~

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 <display-name>springapp</display-name>
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext*.xml</param-value>
 </context-param>

 <!-- Character Encoding filter -->
 <filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEnco                                  dingFilter</filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>

 <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <!--Spring ApplicationContext 载入 -->
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

 <servlet>
        <servlet-name>simple</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>simple</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

 

3.springapp-servlet.xml ,这个配置文件是不是看起来清爽了很多,不像2.0那么复杂了。

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
   
    <!--
        - The controllers are autodetected POJOs labeled with the @Controller annotation.
    -->
    <component-scan base-package="test"/> <!--指定解析该包名下的controller-->

    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
</beans>

 

4.下边看看使用annoation风格的Controller: 这个相当于原来的simpleFormController

package test;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;

@Controller
@RequestMapping("/person.do")
public class PersonForm {
 private static Person person = new Person();

 @RequestMapping(method = RequestMethod.GET)
 public String setupForm(@RequestParam("id") long id, ModelMap model,
   HttpServletRequest request) {
  String s = request.getParameter("id");
  System.out.println("getIdddddd " + s);
  model.addAttribute("person", getPerson(id));
  return "personForm";
 }

 @RequestMapping(method = RequestMethod.POST)
 public String processSubmit(@ModelAttribute("person") Person person,
   BindingResult result, SessionStatus status) {
  if (result.hasErrors()) {
   return "personForm";
  } else {
   PersonForm.person = person;
   System.out.println("person name set to:" + person.getName());
   status.setComplete();
   return "redirect:person.do?id=" + person.getId();
  }
 }

 private Person getPerson(long id) {
  return person;
 }

}

5.在来看个muliController的例子

package test;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;

@Controller
@RequestMapping("/person.do")
public class PersonForm {
 private static Person person = new Person();

 @RequestMapping(method = RequestMethod.GET)
 public String setupForm(@RequestParam("id") long id, ModelMap model,
   HttpServletRequest request) {
  String s = request.getParameter("id");
  System.out.println("getId " + s);
  model.addAttribute("person", getPerson(id));
  return "personForm";//直接返回view层名称 -->personForm.jsp
 }

 @RequestMapping(method = RequestMethod.POST)
 public String processSubmit(@ModelAttribute("person") Person person,
   BindingResult result, SessionStatus status) {
  if (result.hasErrors()) {
   return "personForm";
  } else {
   PersonForm.person = person;
   System.out.println("person name set to:" + person.getName());
   status.setComplete();
   return "redirect:person.do?id=" + person.getId();
  }
 }

 private Person getPerson(long id) {
  return person;
 }

}

6.在看看view层:

personForm.jsp

test.jsp

 

7.所需要加载的jar包

spring.jar    spring-agent.jar  spring-aop.jar spring-aspects.jar spring-beans.jar spring-context.jar

 spring-context-support.jar    spring-core.jar  spring-web.jar  spring-webmvc.jar

 

8.如果页面使用了jstl,还需要使用两个额外的jar

jstl.jar   standard.jar

 

分享到:
评论

相关推荐

    spring2.5 mvc 完整项目

    《Spring 2.5 MVC 完整项目:深入解析与实践》 在IT行业中,Spring框架作为Java领域的重要支柱,其MVC(Model-View-Controller)模块在Web应用程序开发中占据着举足轻重的地位。本文将针对“Spring 2.5 MVC 完整...

    spring2.5 mvc_ibatis2

    《Spring 2.5 MVC与iBatis 2整合详解》 在Web开发领域,Spring框架以其强大的功能和灵活性备受开发者喜爱。Spring 2.5版本是Spring发展史上的一个重要里程碑,它引入了许多新特性,使得开发更加高效。同时,iBatis...

    Spring2.5MVC--基于注解的附件上传

    这篇博客"Spring2.5 MVC -- 基于注解的附件上传"详细介绍了如何在Spring MVC 2.5中实现这一功能。 首先,我们需要了解Spring MVC中处理文件上传的基本概念。文件上传主要涉及到两个组件:`MultipartResolver`和`@...

    Spring2.5 MVC 处理管道使用参考手册

    最后,一旦视图被解析出来,Spring MVC就会使用视图对象渲染模型数据并将其返回给客户端。视图对象通常会负责将模型数据插入到模板中,生成最终的HTML响应。 在Spring 2.5 MVC中,还可以利用拦截器...

    spring2.0MVC+spring2.5MVC+portletMVC

    本主题将深入探讨Spring 2.0、2.5版本的MVC特性和Portlet MVC的相关知识。 首先,Spring 2.0在MVC方面引入了显著的改进,包括: 1. **依赖注入(DI)**:Spring 2.0增强了对MVC组件的依赖注入支持,允许开发者更...

    Spring 2.5 mvc例子

    总的来说,Spring 2.5 MVC 提供了一个强大且灵活的平台,让开发者能够高效地构建 Web 应用程序。通过注解驱动、AOP 集成以及丰富的组件支持,它简化了开发流程,提高了代码质量。在实际项目中,深入理解和熟练运用...

    spring webmvc struts 2.5 很难找的依赖包

    spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 ...

    Spring2.5 MVC 处理管道使用参考手册V1.0.chm

    目前介绍springMVC的资料...本文根据笔者一年多对spring2.5 MVC的学习与实践,将平时的学习笔记进行了整理与完善,对springMVC中涉及到的绝大部分处理管道进行了详细的描述,其中所有列举的配置方式,笔者都做过测试。

    精通Spring2.5pdf书籍proSpring2.5

    《精通Spring2.5》是一本深度探讨Spring框架的权威指南,主要针对Spring 2.5版本进行深入解析。Spring是Java企业级应用开发中最受欢迎的框架之一,它以其轻量级、模块化的设计,以及对IoC(Inversion of Control,...

    Spring2.5-中文参考手册chm

    Spring2.5版本是该框架的一个重要里程碑,它在2008年发布,带来了许多新特性和改进,提升了开发者在构建应用程序时的灵活性和效率。 **依赖注入(DI)和控制反转(IoC)** Spring的核心特性之一是依赖注入(Dependency...

    spring2.5的所有jar包

    6. **Web-MVC增强**:Spring MVC在2.5版本中提供了更多的特性,如:模型-视图-适配器(MVA)模式的改进,支持RESTful风格的URL映射,以及对HTTP上传文件的支持。 7. **Spring Expression Language (SpEL)**:Spring...

    Spring2.5 源代码

    Spring 2.5增加了对注解驱动的切面的支持,`@Aspect`、`@Before`、`@After`等注解使得AOP的使用更加直观。 4. **Bean工厂与ApplicationContext**: Spring 2.5中的Bean工厂是容器的基础,而ApplicationContext是更...

    spring2.5中文文档

    10. **Spring与其他框架的整合**:Spring 2.5增强了与其他框架的集成,如MyBatis、Quartz、EJB等,使得开发者可以更方便地将Spring与其他技术结合使用。 总的来说,Spring 2.5中文文档为中文使用者提供了全面的指南...

    Spring2.5-中文参考手册chm.zip

    这个"Spring2.5-中文参考手册chm.zip"文件包含了关于Spring 2.5版本的详细中文指南,对于学习和理解Spring框架具有很高的价值。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程...

    Spring2.5 中文文档 chm格式

    除此之外,Spring2.5在MVC(Model-View-Controller)方面也有显著提升。Spring MVC是构建Web应用的重要部分,提供了处理HTTP请求、模型绑定、视图解析等功能。2.5版本引入了`@RequestMapping`注解,使得控制器方法与...

    使用Spring 2.5 基于注解驱动的 Spring MVC详解

    使用 Spring 2.5 基于注解驱动的 Spring MVC 详解 本文将介绍 Spring 2.5 新增的 Spring MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。 Spring MVC 注解驱动 在 Spring 2.5 中,...

    spring 2.5中文帮助文档

    通过阅读《Spring2.5-中文参考手册.chm》这份文档,开发者可以深入了解Spring 2.5的各种特性和用法,解决实际开发中遇到的问题,提升开发效率。文档不仅包含详细的API参考,还包含丰富的示例和最佳实践指导,是学习...

    struts1.2 + spring2.5 + hibernate3.2框架demo

    总结来说,这个demo项目提供了一个学习和实践Struts1.2、Spring2.5和Hibernate3.2集成的平台,涵盖了MVC设计模式、依赖注入、面向切面编程和对象关系映射等多个关键概念。通过深入研究和修改这个项目,开发者能够...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    Struts2.1、Spring2.5和Hibernate3.3是经典的Java企业级开发框架组合,它们各自在应用程序的不同层面提供了强大的支持。本篇将详细阐述这三个组件的整合过程,以及各自的核心特性。 首先,Struts2是一个基于MVC设计...

    FLEX4+Gilead+BlazeDS+pureMVC+spring2.5 MVC+hibernate3.3+SLF4J+CXF2.3.0 以及相关插件

    标题中的"FLEX4+Gilead+BlazeDS+pureMVC+spring2.5 MVC+hibernate3.3+SLF4J+CXF2.3.0"涉及了多个关键技术和框架,这些都是在构建分布式、企业级Web应用程序时常用的技术组件。下面将逐一解析这些技术的核心概念和...

Global site tag (gtag.js) - Google Analytics