绑定默认数据类型
当前端请求的参数比较简单时,可以在后台方法的形参中直接使用Spring MVC提供的默认参数类型进行数据绑定。
常用的默认参数类型如下:
▶ HttpServletRequest:通过request对象获取请求信息;
▶ HttpServletResponse:通过response处理响应信息;
▶ HttpSession:通过session对象得到session中存放的对象;
▶ Model/ModelMap:Model是一个接口,ModelMap是一个接口实现,作用是将model数据填充到request域。
针对以上几种默认参数类型的数据绑定,本节将以HttpServletRequest类型的使用为例进行演示说明,其具体步骤如下。
(1)在Eclipse中,创建一个名为chapter13的Web项目,然后将Spring MVC相关JAR包添加到项目的lib目录下,并发布到类路径中。添加JAR包后的lib目录如图1所示。
图1 Spring MVC相关JAR包
(2)在web.xml中,配置Spring MVC的前端控制器等信息。
(3)在src目录下,创建Spring MVC的核心配置文件springmvc-config.xml,在该文件中配置组件扫描器和视图解析器,如文件1所示。
文件1 springmvc-config.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
7 http://www.springframework.org/schema/context
8 http://www.springframework.org/schema/context/spring-context-4.3.xsd">
9 <!-- 定义组件扫描器,指定需要扫描的包 -->
10 <context:component-scan base-package="com.itheima.controller" />
11 <!-- 定义视图解析器 -->
12 <bean id="viewResolver" class=
13 "org.springframework.web.servlet.view.InternalResourceViewResolver">
14 <!-- 设置前缀 -->
15 <property name="prefix" value="/WEB-INF/jsp/" />
16 <!-- 设置后缀 -->
17 <property name="suffix" value=".jsp" />
18 </bean>
19 </beans>
(4)在src目录下,创建一个com.itheima.controller包,在该包下创建一个用于用户操作的控制器类UserController,编写后的代码如文件2所示。
文件2 UserController.java
1 package com.itheima.controller;
2 import javax.servlet.http.HttpServletRequest;
3 import org.springframework.stereotype.Controller;
4 import org.springframework.web.bind.annotation.RequestMapping;
5 @Controller
6 public class UserController {
7 @RequestMapping("/selectUser")
8 public String selectUser(HttpServletRequest request) {
9 String id = request.getParameter("id");
10 System.out.println("id="+id);
11 return "success";
12 }
13 }
在文件2中,使用注解方式定义了一个控制器类,同时定义了方法的访问路径。在方法参数中使用了HttpServletRequest类型,并通过该对象的getParameter()方法获取了指定的参数。为了方便查看结果,将获取的参数进行输出打印,最后返回一个名为success的视图,Spring MVC会通过视图解析器在“/WEB-INF/jsp/”路径下寻找success.jsp文件。
小提示:
后台在编写控制器类时,通常会根据需要操作的业务对控制器类进行规范命名。例如要编写一个对用户操作的控制器类,可以将控制器类命名为UserController,然后在该控制器类中就可以编写任何有关用户操作的方法。
(5)在WEB-INF目录下,创建一个名为jsp的文件夹,然后在该文件夹中创建页面文件success.jsp,该界面只作为正确执行操作后的响应页面,没有其他业务逻辑,如文件3所示。
文件3 success.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <html>
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6 <title>结果页面</title>
7 </head>
8 <body>
9 ok
10 </body>
11 </html>
(6)将chapter13项目发布到Tomcat服务器并启动,在浏览器中访问地址http://localhost:8080/chapter13/selectUser?id=1
,其显示效果如图2所示。
图2 success.jsp页面
此时的控制台打印信息如图3所示。
图3 运行结果
从图3可以看出,后台方法已从请求中正确的获取到了id的参数信息,这说明使用默认的HttpServletRequest参数类型已经完成了数据绑定。