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);
}
分享到:
相关推荐
NULL 博文链接:https://gary0416.iteye.com/blog/1090071
在这个实例中,我们将探讨如何利用MVC注解配置来简化Spring MVC应用的设置和管理。MVC模式(Model-View-Controller)是软件设计的一种经典模式,它将业务逻辑、数据和用户界面分离,使得代码更加模块化,易于维护。 ...
在这个“最全的Spring MVC注解例子”中,我们将深入探讨Spring MVC的核心注解,以及如何实现异步请求处理和错误管理。 1. **Spring MVC核心注解** - `@Controller`:标记一个类为处理HTTP请求的控制器。这是Spring...
在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。Spring MVC通过注解可以实现控制器、方法映射、模型数据绑定、视图解析等关键功能。本实例将深入探讨Spring MVC中常见的注解及其应用。 1. `@...
首先,Spring MVC注解允许开发者以声明式的方式配置控制器,避免了传统的XML配置文件。这极大地简化了代码,提高了可读性和维护性。例如,`@RequestMapping`注解就是其中的关键,它可以在类级别或方法级别使用,用于...
本文将深入探讨Spring与Spring MVC的整合配置,并结合标签"源码"和"工具"来解析相关的技术细节。 首先,Spring框架的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
总结起来,这个"Spring MVC注解项目实例"涵盖了Spring MVC框架的核心元素,包括注解驱动的控制器、拦截器的使用,以及数据库操作。它为初学者提供了一个动手实践的机会,帮助他们快速掌握Spring MVC的开发技巧。
**基于JPA+Hibernate+Spring+Spring MVC注解方式项目详解** 在现代Java Web开发中,Spring框架扮演了核心角色,而Spring MVC作为其MVC(Model-View-Controller)实现,提供了强大的Web应用程序构建能力。同时,JPA...
如果使用spring mvc 3.2+和servelt 3+容器(比如tomcat8),那么web.xml和applicationContext.xml都不是必须的,可使用基于注解的配置: 基于配置的集成例子源代码:
一、Spring MVC注解开发的基本实现步骤 1. **创建Web工程**:首先需要创建一个Java Web项目,包含Web-INF目录结构,以便存放Web应用的相关配置文件。 2. **设置Tomcat服务器**:配置并启动Tomcat服务器,作为Web...
在这个实例中,我们将讨论如何使用注解来配置 Spring MVC。 首先,我们需要在 `web.xml` 文件中进行基本的配置。这个文件是 Java Web 应用的标准部署描述符,用来定义应用的启动和运行规则。在给出的 `web.xml` ...
在“基于注解的Spring MVC环境搭建”中,我们将深入探讨如何利用注解来简化配置,快速建立一个运行中的Web项目。这篇博文(尽管描述为空,但提供了链接)很可能是关于创建一个基本的Spring MVC项目并使用注解来管理...
在这个实例中,我们将重点讨论如何使用Spring MVC的注解进行数据的增删改操作,并结合Hibernate作为ORM(对象关系映射)工具。 首先,`@Controller`注解标记了一个类作为Spring MVC的控制器,负责处理HTTP请求。在...
在本"Spring MVC注解Demo"中,我们将深入探讨如何利用注解简化Spring MVC的配置和控制器的实现,使其更适合初学者快速上手。 在Spring MVC中,注解的使用大大减少了XML配置,使得代码更加简洁且易于理解。以下是...
Spring MVC 配置详解 Spring MVC 是一个基于 DispatcherServlet 的 MVC 框架,它是当前主流的 Web 框架之一。要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC ...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
在Spring 2.5版本中,引入了完全基于注解的配置,使得开发者能够更便捷地创建和管理Controller。 首先,我们来看一下Spring MVC的核心组件: 1. **DispatcherServlet**:前端控制器,它是所有HTTP请求的入口点。...
**Spring MVC注解方式** 1. **Controller注解**:`@Controller`是Spring MVC中的核心注解,用于标记一个类作为处理HTTP请求的控制器。在类上添加此注解后,Spring会将该类实例化,并将其纳入到Spring容器中管理。 ...
通过以上步骤,我们就成功地使用Spring 3.0 MVC注解方式实现了“Hello, World!”的示例。这只是一个基础入门,Spring MVC的强大之处在于其灵活的配置、丰富的注解以及对其他Spring模块的无缝集成,可以满足复杂Web...
本文将介绍 Spring 2.5 新增的 Spring MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。 Spring MVC 注解驱动 在 Spring 2.5 中,Spring MVC 框架引入了注解驱动功能,使得开发者可以...