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
这是一个Spring MVC实例 使用MVC注解配置
主要介绍Spring MVC 的使用注解来配置的使用实例
如果使用spring mvc 3.2+和servelt 3+容器(比如tomcat8),那么web.xml和applicationContext.xml都不是必须的,可使用基于注解的配置: 基于配置的集成例子源代码:
spring mvc注解方式整合jdbctemplate
简单的描述了spring mvc的配置示例,不包括注解方法和示例代码
采用spring3.0 mvc 注解的方式,在页面显示helloworld
介绍 Spring 2.5 新增的 Sping MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。
基于注解配置和使用spring AOP(spring mvc框架)
关于Spring注解的配置,使用都有详细的注释说明 spring的MVC架构这里不是很明显,但LZ稍作添加即可!
Spring MVC 注解模式下怎么样上传FTP图片,内容很简单,一看就会
《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及...
使用spring-mvc 注解方式 注入 Controller 控制器 访问路径 精确到方法名 无需 多余注解 简单方便 附带实例
使用Spring3 mvc 注解配置,学习良师。
后台全注解式的开发(除了必要的spring和hibernate的xml配置以外) 03. 后台通过自定义注解结合一个访问拦截器实现整个系统的权限控制 04. 系统前台采用全采用的Html+jQuery开发 05. 系统前台与后台的交互全部...
随着Annotation的流行,一些主流框架都加入了对Annotation的支持。使用Annotation能够简化很多配置工作...本文将 Spring 2.5 新增的 Sping MVC 注解功能,介绍如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。
spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。
简单实用spring MVC教程 使新手一下就了解SPring MVC ,并且还有注解。和注解方面如何配置。
主要为大家详细介绍了Spring MVC完全注解方式配置web项目的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation. AnnotationMethodHandlerAdapter"/> <!-- ③:对模型视图名称的解析,即在模型...