- 浏览: 948627 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- mysql (37)
- hibernate (3)
- struts (9)
- spring (33)
- dom4j (2)
- junit (0)
- exception (1)
- 随笔杂谈 (12)
- google app engine (1)
- XMPP (1)
- OAuth安全授权 (1)
- 版本控制 (8)
- 心情感悟 (0)
- core java (19)
- log4j (7)
- jquery (12)
- javascript (10)
- 网站性能优化及工具 (11)
- 服务器架设配置等 (38)
- EXT (4)
- 正则表达式 (5)
- 日志统计分析 (2)
- htmlparse (4)
- httpclient (5)
- java随笔 (5)
- dhtmlxtree (1)
- freemarke (5)
- memcached (6)
- javamail (5)
- Linux命令 (10)
- 应用监控cpu web jdbc等 (4)
- jmagick (9)
- 第三方缓存策略 (9)
- ORM (2)
- hadoop (2)
- 大数据量处理 (8)
- 经典 (1)
- 权限设计 (1)
- andriod (1)
- mybatis (12)
- redis (24)
- 数据结构_算法 (5)
- 分布式系统 (1)
- php (1)
- 网络编程 (3)
- 服务器部署 (3)
- ios (2)
- IM (23)
- mina (1)
- 视讯和语音 (1)
- 代码生成 (1)
- 架构 (4)
- 建模工具 (1)
- oracle (4)
- solr (10)
- 构建工具 (7)
- html5 (1)
- nginx (5)
- css (1)
- 大数据-分布式 (2)
- 设计模式 (2)
- mq (2)
- jvm调优 (8)
- 并发编程 (2)
- 搜索引擎 (1)
- UML (2)
最新评论
-
天使建站:
jquery获取网页里多选框checkbox选中项的值的方法及 ...
JS jQuery分别获取选中的复选框值 -
abao1:
发现一个小问题 sortAndSave方法中的for循环 第二 ...
完整java实现外部排序 -
西巴拉古呀那:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
消息系统kafka介绍 -
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
消息系统kafka介绍 -
成大大的:
Kafka分布式消息系统实 ...
消息系统kafka介绍
四:视图名的确定。
spring mvc可以通过可以通过多种方式确定视图名,在前面的例子中,方法无返回值,视图名更具请求参数确定。Controller方法还是返回一个String类型的值作为视图名。
@RequestMapping("/user/list.htm") public String listAllUser(){ return "user/list-user"; }
那么该例子的视图文件就为/WEB-INF/jsp/user/list-user.jsp
五:视图模型参数的传递。
在spring mvc中可以通过ModelMap对象传递模型参数到视图进行处理。在Controller方法中声明一个ModelMap参数,spring会创建一个ModelMap对象,并传入方法,方法处理完成后自动传递到视图进行处理。
- @RequestMapping("/user/list.htm")
- public String listAllUser(ModelMap model){
- List<User> users = new ArrayList<User>();
- User user = new User();
- user.setPassword("user1");
- user.setPassword("pwd");
- user.setAge(20);
- users.add(user);
- user = new User();
- user.setPassword("user2");
- user.setPassword("pwd2");
- user.setAge(22);
- users.add(user);
- model.addAttribute("users", users);
- return "user/list-user";
- }
@RequestMapping("/user/list.htm") public String listAllUser(ModelMap model){ List<User> users = new ArrayList<User>(); User user = new User(); user.setPassword("user1"); user.setPassword("pwd"); user.setAge(20); users.add(user); user = new User(); user.setPassword("user2"); user.setPassword("pwd2"); user.setAge(22); users.add(user); model.addAttribute("users", users); return "user/list-user"; }
model中的参数默认是添加在request作用域中的,该例中视图可以通过request.getAttribute("users")获得user列表。在视图中使用jstl输出
- <c:forEach var="user" items="${requestScope.users}">
- ${user.username }
- ${user.password }
- ${user.age }
- </c:forEach>
<c:forEach var="user" items="${requestScope.users}"> ${user.username } ${user.password } ${user.age } </c:forEach>
还可以通过在Controller方法返回一个ModelMap对象,这种情况下,视图名由请求Url确定。
- @RequestMapping("/user/list-user.htm")
- public ModelMap listAllUser() {
- List<User> users = new ArrayList<User>();
- //.........
- ModelMap model = new ModelMap();
- model.addAttribute("users", users);
- return model;
- }
@RequestMapping("/user/list-user.htm") public ModelMap listAllUser() { List<User> users = new ArrayList<User>(); //......... ModelMap model = new ModelMap(); model.addAttribute("users", users); return model; }
另外可以通过在Controller上添加@SessionAttributes注解指定某个model参数为session作用域的
六:特殊输入参数
spring mvc还可以往Controller方法传入request,session等特殊的参数。
- @Controller
- public class RequestController {
- @RequestMapping("/handleRequest.htm")
- public void handleRequest(HttpServletRequest request,
- HttpServletResponse response, HttpSession session)
- throws IOException {
- String param = (String) request.getParameter("param");
- if (param != null) {
- session.setAttribute("param", param);
- }
- PrintWriter out = response.getWriter();
- out.println("<h1>" + session.getAttribute("param") + "</h1>");
- out.flush();
- out.close();
- }
- }
@Controller public class RequestController { @RequestMapping("/handleRequest.htm") public void handleRequest(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException { String param = (String) request.getParameter("param"); if (param != null) { session.setAttribute("param", param); } PrintWriter out = response.getWriter(); out.println("<h1>" + session.getAttribute("param") + "</h1>"); out.flush(); out.close(); } }
如果在Controller方法中直接使用了response输入,方法应该返回void,不再使用视图。
七:处理文件上传
在前面的例子中配置了multipartResolver bean。该bean对http请求中的mutipart form data进行处理。spring mvc默认支持common fileupload 和 cos 所以需要把相应的jar包放入lib中。
- @Controller
- public class FileUploadController {
- @RequestMapping("/fileupload.htm")
- public void upload(MultipartHttpServletRequest request,
- HttpServletResponse response) throws IOException {
- MultipartFile file = request.getFile("file");
- byte[] buffer = new byte[1024];
- int len = -1;
- InputStream in = file.getInputStream();
- String contextPath = request.getRealPath("/");
- String path = contextPath + "\\" + file.getOriginalFilename();
- OutputStream out = new FileOutputStream(path);
- while ((len = in.read(buffer)) != -1) {
- out.write(buffer, 0, len);
- }
- in.close();
- out.close();
- response.getWriter().println("Upload Success!");
- }
- }
@Controller public class FileUploadController { @RequestMapping("/fileupload.htm") public void upload(MultipartHttpServletRequest request, HttpServletResponse response) throws IOException { MultipartFile file = request.getFile("file"); byte[] buffer = new byte[1024]; int len = -1; InputStream in = file.getInputStream(); String contextPath = request.getRealPath("/"); String path = contextPath + "\\" + file.getOriginalFilename(); OutputStream out = new FileOutputStream(path); while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } in.close(); out.close(); response.getWriter().println("Upload Success!"); } }
MultipartHttpServletRequest可以获得多个上传文件,同时可以获得传入的其他Http参数。
八:异常处理
- <bean id="exceptionResolver"
- class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
- <property name="defaultErrorView">
- <value>/exception/error</value>
- </property>
- <property name="exceptionMappings">
- <props>
- <prop key="java.sql.SQLException">
- /exception/dberror
- </prop>
- </props>
- </property>
- </bean>
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView"> <value>/exception/error</value> </property> <property name="exceptionMappings"> <props> <prop key="java.sql.SQLException"> /exception/dberror </prop> </props> </property> </bean>
发表评论
-
各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
2013-07-16 13:09 2827在开发基于数据库的应 ... -
springmvc rest框架搭建中遇到的问题-xml转换错误
2013-01-18 11:26 2005.bean to xml显示的xml不是我往Model ... -
spring3.5 mvc json view bug MappingJacksonJsonView
2013-01-18 11:27 1541在返回单一model的json的时候。 MappingJa ... -
Spring MVC的多视图解析器配置及与Freemarker的集成
2013-01-18 11:27 3684http://my249645546.iteye.com/ ... -
xStream完美转换XML、JSON
2013-01-17 16:02 1257http://www.cnblogs.com/hoojo/a ... -
SpringMVC 中整合JSON、XML视图一
2013-01-17 16:01 1371http://www.cnblogs.com/hoojo/a ... -
Spring MVC 之 视图解析器ResourceBundleViewResolver
2013-01-17 10:45 1278http://blog.csdn.net/q34982 ... -
spring3mvc自定义多视图解析器
2013-01-17 10:41 1664使用视图名后缀来判断选择相应的视图解析器自定义一个视图解析器 ... -
spring3.0.6 使用context:property-placeholder载不进属性
2012-12-15 14:43 1378我用spring3.0.6+mybatis3.0.6+myba ... -
Spring定时任务的多种使用方法总结
2012-10-18 09:48 1730这里使用的是Spring2.5,需要的jar包:spring. ... -
Spring3.0 + 自定义注解实现操作日志记录功能
2012-03-12 09:34 1491最近项目组长分配给我一个任务,让我完成一个操作日志的管理功能。 ... -
spring mvc例子
2012-03-11 11:35 2074使用拦截器 和Struts2一样,Spring MVC也可以 ... -
在 Spring Bean 內取得 HttpServletRequest
2011-10-11 16:13 1228使用 Java 去開發 Web 應用程式時,大部份時候都會使用 ... -
spring3+freemark自定义标签
2011-10-09 18:27 2753<bean id="viewResolver& ... -
OpenSessionInViewFilter作用及配置
2011-06-15 10:31 1335摘自:http://www.yybean.com/opense ... -
spring httpinvoke 例子
2011-04-21 17:15 1205http://ajava.org/course/open/11 ... -
Spring基于注解的缓存配置--EHCache AND OSCache
2011-04-02 23:38 2343本文将构建一个普通工程来说明spring注解缓存的使用方式,关 ... -
使用 ActiveMQ 示例
2011-03-30 17:38 1366企业中各项目中相互协作的时候可能用得到消息通知机制。比如有 ... -
使用Spring HTTP invoker进行远程调用
2011-03-30 10:34 1695使用Spring HTTP invoker进行远程调用Spri ... -
Java Spring2.5 Remote Invoke HTTP Invoker远程调用
2011-03-30 08:42 1972近日,一个项目涉及到系统间接口调用,考虑到系统间用的都是j ...
相关推荐
使用 Spring 2.5 基于注解驱动的 Spring MVC 详解 本文将介绍 Spring 2.5 新增的 Spring MVC 注解功能,讲述如何使用注解配置替换传统的基于 XML 的 Spring MVC 配置。 Spring MVC 注解驱动 在 Spring 2.5 中,...
1. **注解驱动的Controller**:在Spring 2.5中,你可以使用`@Controller`注解来标记一个类作为Spring MVC的控制器。这个注解告诉Spring该类包含处理HTTP请求的方法。例如: ```java @Controller public class ...
总的来说,Spring MVC通过注解驱动的编程模型、强大的依赖注入和面向切面编程,提供了一种高效且灵活的Web应用开发方式。通过实践简单的例子,如创建控制器、处理HTTP请求、返回视图,可以快速上手并深入了解其工作...
2. **注解驱动开发** 在传统的Spring MVC中,我们需要XML配置文件来定义bean和它们之间的依赖关系。然而,通过使用注解,我们可以减少或消除XML配置,使得代码更简洁、可读性更强。常见的注解包括`@Controller`,`@...
本节将深入探讨Spring MVC的注解驱动机制、基础配置以及控制器的返回值分析。 首先,让我们来看看Spring MVC的基本配置。在Web.xml文件中,我们需要设置几个关键的元素来启动Spring MVC的应用: 1. `...
总的来说,Spring 2.5的注解驱动Spring MVC使得代码更加简洁,降低了维护成本,并提高了开发效率。随着Spring框架的不断发展,注解驱动的编程模型已成为主流,它简化了配置,增强了可读性和可测试性,极大地推动了...
接下来,我们深入理解 Spring MVC 中的注解驱动配置: 1. **@Autowired** 注解:在 BbtForumController 类中,我们看到了 @Autowired 注解用于注入 BbtForumService 实例。这是 Spring 自动装配依赖的一种方式,它...
### 使用 Spring 2.5 基于注解驱动的 Spring MVC #### 概述与背景 自从Spring 2.0版本对Spring MVC框架进行了重大升级之后,Spring 2.5再次对该框架进行了显著改进,引入了注解驱动的功能。这使得开发人员能够更加...
【基于注解的Spring MVC demo】是一个用于演示和学习如何在Spring MVC框架中使用注解进行Web应用开发的实例。...通过逐步学习和实践,你将能够掌握Spring MVC的注解驱动开发,从而提升你的Web应用开发能力。
Spring 2.5的注解驱动Spring MVC极大地简化了框架的配置和使用,使得开发人员可以更专注于业务逻辑,而不是繁琐的配置工作。这种面向切面编程(AOP)的特性,以及对注解的广泛支持,使得Spring MVC成为了一个更加...
1. **注解驱动的Spring MVC** 在传统的Spring MVC应用中,我们需要编写XML配置文件来声明控制器、服务层和数据访问层等组件。然而,通过使用注解,我们可以直接在类和方法级别声明这些组件,大大减少了配置文件的...
本demo展示了如何使用注解驱动的方式来构建一个简单的Spring MVC应用程序。注解使得代码更加简洁,减少了XML配置文件的工作量,提高了开发效率。 首先,我们需要了解Spring MVC的核心概念: 1. **...
ler 主要是处理 HTTP 请求,所以 @Controller 更具针对性,它标识了一个类作为 Spring MVC 的控制器。... ...随着 Spring 框架的不断发展,注解驱动的编程模式已经成为现代 Java Web 开发的标准实践。
在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。...在Springmvc02这个项目中,你可以找到更多关于这些注解的实际应用示例,通过学习和实践,将有助于深入理解Spring MVC的注解驱动开发模式。
- **注解驱动开发**:2.5.6版本已经支持注解驱动,如@Controller、@RequestMapping、@RequestParam等,使得代码更简洁。 - **AOP集成**:Spring MVC与Spring的面向切面编程(AOP)无缝集成,可以方便地实现事务...
这些库使得我们可以利用注解驱动的方式,轻松地实现基于Spring MVC的增删改功能。 总之,基于注解的Spring MVC提供了一种高效、简洁的方式来构建Web应用,尤其是在处理CRUD操作时。通过合理使用各种注解,可以极大...
在这个视频教程中,你可能将学习到如何配置Spring的XML上下文文件以启用注解驱动的配置,如何在Spring MVC中创建注解式的控制器并处理HTTP请求,以及如何通过Hibernate的注解来设计数据模型并执行CRUD操作。...
在Spring MVC中,注解驱动的开发模式极大地简化了Web应用的开发流程,使得开发者可以更加专注于业务逻辑,而不需要过多地关注底层的配置。下面我们将详细探讨Spring MVC中的注解驱动开发及其相关知识点。 1. **@...