`
myrev
  • 浏览: 164184 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

Spring MVC 注解配置

阅读更多

1、配置Web.xml
<!-- Spring MVC Servlet -->
	<servlet>
         <servlet-name>springmvc</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <load-on-startup>2</load-on-startup>
    </servlet>
	 
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>


2、配置ApplicationContext.xml

	
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" lazy-init="false"/>
	
          <!-- 另外最好还要加入DefaultAnnotationHandlerMapping,不然会被 XML或其它的映射覆盖!-->
          <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />


3、Controller配置

(1)、一个方法一个Action
package com.dragonsoft.library.web.action.manager;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MainRootController {
	
	@RequestMapping("/manager/main.do")
	public String mainHandler(ModelMap model){
		
		return "/manager/main";
	}
	
}


(2)、参数方法
package com.dragonsoft.library.web.action;

import java.io.IOException;
import java.io.Serializable;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;

@SessionAttributes(GenericController.SESSIONMESSAGE)
public abstract class GenericController<T, ID extends Serializable> {
	
	protected Logger logger = LoggerFactory.getLogger(getClass());
	
	public static final String FLASHMESSAGE = "flashMessage";//信息,重定向后消失
	
	public static final String SESSIONMESSAGE = "sessionMessage";//会话信息
	
	public static final String WARNMESSAGE = "warnMessage";//警告信息
		
	protected static final String SHOW = "show";
	
	protected static final String EDIT = "edit";
	
	protected static final String CREATE = "create";
	
	protected static final String LIST = "list";
	
	
	/**
	 * 模板目录
	 * @return
	 */
	public String getBasePath(){
		return "";
	}
	
	/**
	 * 查看
	 * @param model
	 * @return
	 */
	@RequestMapping(params = "method=show")
	public String showHandler(ID id, ModelMap model){
		return getBasePath()+show(id, model);
	}
	
	public abstract String show(ID id, ModelMap model);
	
	/**
	 * 创建
	 * @param model
	 * @return
	 */
	@RequestMapping(params = "method=create")
	public String createHandler(ModelMap model){
		return getBasePath()+create(model);
	}
	
	public abstract String create(ModelMap model);
	
	/**
	 * 修改
	 * @param model
	 * @return
	 */
	@RequestMapping(params = "method=edit")
	public String editHandler(ID id, ModelMap model){
		return getBasePath()+edit(id,model);
	}
	
	public abstract String edit(ID id, ModelMap model);
	
	/**
	 * 列表
	 * @param model
	 * @return
	 */
	@RequestMapping(params = "method=list")
	public String listHandler(ModelMap model){
		return getBasePath()+list(model);
	}
	
	public abstract String list(ModelMap model);
	
	/**
	 * 保存
	 * @param entity
	 * @param model
	 * @return
	 */
	@RequestMapping(params = "method=save", method = RequestMethod.POST)
	public String saveHandler(T entity, ModelMap model){
		preSave(entity, model);
		return getBasePath()+save(entity, model);
	}
	
	public void preSave(T entity, ModelMap model){
		
	}
	public abstract String save(T entity, ModelMap model);
	
	/**
	 * 更新
	 * @param entity
	 * @param model
	 * @return
	 */

	@RequestMapping(params = "method=update", method = RequestMethod.POST)
	public String updateHandler(T entity, ModelMap model){
		preUpdate(entity, model);
		return getBasePath()+update(entity, model);
	}
	
	public void preUpdate(T entity, ModelMap model){
		
	}
	public abstract String update(T entity, ModelMap model);
	
	/**
	 * 删除
	 * @param id
	 * @param model
	 * @return
	 */
	@RequestMapping(params = "method=delete")
	public String deleteHandler(ID id, ModelMap model){
		return getBasePath()+delete(id, model);
	}
	
	public abstract String delete(ID id, ModelMap model);
	
	/**
	 * 信息
	 * @param message
	 * @param model
	 */
	public void addFlashMessage(String message, ModelMap model){
		model.addAttribute(FLASHMESSAGE, message);
	}
	
	public void addWarnMessage(String message, ModelMap model){
		model.addAttribute(WARNMESSAGE, message);
	}
	
	public void addSessionMessage(String message, ModelMap model){
		model.addAttribute(SESSIONMESSAGE, message);
	}
	
	/**
	 * 绕过Template,直接输出内容的简便函数. 
	 */
	protected String render(String text, String contentType, HttpServletResponse response) {
		try {
			response.setContentType(contentType);
			response.getWriter().write(text);
		} catch (IOException e) {
			logger.error(e.getMessage(), e);
		}
		return null;
	}

	/**
	 * 直接输出字符串.
	 */
	protected String renderText(String text, HttpServletResponse response) {
		return render(text, "text/plain;charset=UTF-8", response);
	}

	/**
	 * 直接输出HTML.
	 */
	protected String renderHtml(String html, HttpServletResponse response) {
		return render(html, "text/html;charset=UTF-8", response);
	}

	/**
	 * 直接输出XML.
	 */
	protected String renderXML(String xml, HttpServletResponse response) {
		return render(xml, "text/xml;charset=UTF-8", response);
	}
	
}



(3)、传递参数

直接在方法中添加要传入的参数即可

例:
        @RequestMapping(params = "method=update", method = RequestMethod.POST)
	public String updateHandler(T entity, ModelMap model){
		preUpdate(entity, model);
		return getBasePath()+update(entity, model);
	}


分享到:
评论
5 楼 2047699523 2015-05-12  
spring mvc demo教程源代码下载:http://www.zuidaima.com/share/kspringmvc-p1-s1.htm
4 楼 u010100704 2014-08-07  
你的代码对我一点价值都没有。这是我的真实回答;
3 楼 zhzhong18 2013-11-04  
                 
2 楼 myrev 2010-08-14  
是的,springmvc-servlet.xml 是Spring MVC的请求处理配置
1 楼 n_lick 2010-08-11  
配置了
<servlet>  
         <servlet-name>springmvc</servlet-name>  
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
         <load-on-startup>2</load-on-startup>  
    </servlet>  
       
    <servlet-mapping>  
        <servlet-name>springmvc</servlet-name>  
        <url-pattern>*.do</url-pattern>  
    </servlet-mapping>

是不是还要一个springmvc-servlet.xml文件?

相关推荐

    Spring MVC注解配置简单示例

    NULL 博文链接:https://gary0416.iteye.com/blog/1090071

    Spring MVC实例 MVC注解配置

    在这个实例中,我们将探讨如何利用MVC注解配置来简化Spring MVC应用的设置和管理。MVC模式(Model-View-Controller)是软件设计的一种经典模式,它将业务逻辑、数据和用户界面分离,使得代码更加模块化,易于维护。 ...

    最全的Spring MVC注解例子,异步请求,错误处理

    在这个“最全的Spring MVC注解例子”中,我们将深入探讨Spring MVC的核心注解,以及如何实现异步请求处理和错误管理。 1. **Spring MVC核心注解** - `@Controller`:标记一个类为处理HTTP请求的控制器。这是Spring...

    Spring MVC 的注解使用实例

    在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。Spring MVC通过注解可以实现控制器、方法映射、模型数据绑定、视图解析等关键功能。本实例将深入探讨Spring MVC中常见的注解及其应用。 1. `@...

    Spring3.0MVC注解(附实例)

    首先,Spring MVC注解允许开发者以声明式的方式配置控制器,避免了传统的XML配置文件。这极大地简化了代码,提高了可读性和维护性。例如,`@RequestMapping`注解就是其中的关键,它可以在类级别或方法级别使用,用于...

    spring 与 spring mvc 整合 配置讨论

    本文将深入探讨Spring与Spring MVC的整合配置,并结合标签"源码"和"工具"来解析相关的技术细节。 首先,Spring框架的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...

    Spring MVC注解项目实例

    总结起来,这个"Spring MVC注解项目实例"涵盖了Spring MVC框架的核心元素,包括注解驱动的控制器、拦截器的使用,以及数据库操作。它为初学者提供了一个动手实践的机会,帮助他们快速掌握Spring MVC的开发技巧。

    基于jpa+hibernate+spring+spring mvc注解方式项目

    **基于JPA+Hibernate+Spring+Spring MVC注解方式项目详解** 在现代Java Web开发中,Spring框架扮演了核心角色,而Spring MVC作为其MVC(Model-View-Controller)实现,提供了强大的Web应用程序构建能力。同时,JPA...

    基于注解配置的spring mvc+jpa

    如果使用spring mvc 3.2+和servelt 3+容器(比如tomcat8),那么web.xml和applicationContext.xml都不是必须的,可使用基于注解的配置: 基于配置的集成例子源代码:

    Spring MVC注解开发总结

    一、Spring MVC注解开发的基本实现步骤 1. **创建Web工程**:首先需要创建一个Java Web项目,包含Web-INF目录结构,以便存放Web应用的相关配置文件。 2. **设置Tomcat服务器**:配置并启动Tomcat服务器,作为Web...

    spring mvc注解实例

    在这个实例中,我们将讨论如何使用注解来配置 Spring MVC。 首先,我们需要在 `web.xml` 文件中进行基本的配置。这个文件是 Java Web 应用的标准部署描述符,用来定义应用的启动和运行规则。在给出的 `web.xml` ...

    基于注解Spring MVC环境搭建

    在“基于注解的Spring MVC环境搭建”中,我们将深入探讨如何利用注解来简化配置,快速建立一个运行中的Web项目。这篇博文(尽管描述为空,但提供了链接)很可能是关于创建一个基本的Spring MVC项目并使用注解来管理...

    spring mvc 注解 增删改 实例

    在这个实例中,我们将重点讨论如何使用Spring MVC的注解进行数据的增删改操作,并结合Hibernate作为ORM(对象关系映射)工具。 首先,`@Controller`注解标记了一个类作为Spring MVC的控制器,负责处理HTTP请求。在...

    Spring mvc 注解Demo

    在本"Spring MVC注解Demo"中,我们将深入探讨如何利用注解简化Spring MVC的配置和控制器的实现,使其更适合初学者快速上手。 在Spring MVC中,注解的使用大大减少了XML配置,使得代码更加简洁且易于理解。以下是...

    spring MVC配置详解

    Spring MVC 配置详解 Spring MVC 是一个基于 DispatcherServlet 的 MVC 框架,它是当前主流的 Web 框架之一。要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC ...

    Spring MVC jar包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...

    Spring mvc 注解理解

    在Spring 2.5版本中,引入了完全基于注解的配置,使得开发者能够更便捷地创建和管理Controller。 首先,我们来看一下Spring MVC的核心组件: 1. **DispatcherServlet**:前端控制器,它是所有HTTP请求的入口点。...

    spring mvc注解方式

    **Spring MVC注解方式** 1. **Controller注解**:`@Controller`是Spring MVC中的核心注解,用于标记一个类作为处理HTTP请求的控制器。在类上添加此注解后,Spring会将该类实例化,并将其纳入到Spring容器中管理。 ...

    spring3.0 mvc 注解实现helloworld输出

    通过以上步骤,我们就成功地使用Spring 3.0 MVC注解方式实现了“Hello, World!”的示例。这只是一个基础入门,Spring MVC的强大之处在于其灵活的配置、丰富的注解以及对其他Spring模块的无缝集成,可以满足复杂Web...

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

    本文将介绍 Spring 2.5 新增的 Spring MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。 Spring MVC 注解驱动 在 Spring 2.5 中,Spring MVC 框架引入了注解驱动功能,使得开发者可以...

Global site tag (gtag.js) - Google Analytics