学科分类
目录
SSM框架

绑定默认数据类型

当前端请求的参数比较简单时,可以在后台方法的形参中直接使用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参数类型已经完成了数据绑定。

点击此处
隐藏目录