Previous
:注解驱动的spring mvc(一)
四:视图名的确定。
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";
}
model中的参数默认是添加在request作用域中的,该例中视图可以通过request.getAttribute("users")获得user列表。在视图中使用jstl输出
<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;
}
另外可以通过在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方法中直接使用了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!");
}
}
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>
分享到:
相关推荐
使用 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. **@...