(一)编写控制器。

 SpringMVC的Controller

注:如果WEB-INF下存在index.jsp,”/”将会优先访问index.jsp,所以需要将index.jsp删除或重命名。

对应的home.jsp

 SpringMVC的Controller

游览器访问:

 SpringMVC的Controller

(二)向视图传递模型

web应用中,我们常需要把数据渲染到视图中,下面就看看如何用SpringMVC实现查询用户列表的功能。

1.首先定义一个用户bean

 SpringMVC的Controller

2.定义一个获取用户列表的service,这里我直接创建一个List

 SpringMVC的Controller

3.控制器的编写。

在新的方法里,新加入了一个Model形参(其实就是Map,甚至可以把Model换成Map),这样,users就可以将产生的信息传递到视图。

 SpringMVC的Controller

值得一提的是,在向Model添加数据时,如果不写key,模型的Key将会根据类型推断出(本例中,List<User>就是userList)。

不仅如此,我们甚至可以不使用Model,就像下面这样

 SpringMVC的Controller

因为没有指定请求路径,默认会是方法名“/allUser”。当处理器方法返回对象或集合时,这个值会放到模型中,模型的key会根据类型推断得出。而视图的名称会根据请求的路径推断得出“allUser”。

4.最后是视图的渲染

视图使用了EL表达式和jstl,如果是Servlet3.0话,EL默认是关闭的,需要加上<%@ page isELIgnored="false" %>来开启。

 SpringMVC的Controller

5.测试

 SpringMVC的Controller

三、对请求的处理

Web中,客户端可以通过表单、url等方式,向服务端提交数据或查询数据。那么SpringMVC是如何对请求数据进行接受的呢?

(一)请求处理

SpringMVC中,对于表单数据、Url参数都可以通过@RequestParam(“name”)进行接收。在下例中,需要在查询用户时进行分页,这时就需要传递两个参数:

max 从第几个用户开始

count 一次需要查询的用户数

 SpringMVC的Controller

对于这个两个值为空的情况,还需要设置一个默认的值。

 SpringMVC的Controller

 

(二)路径占位符

SpringMVC提供了路径占位符的功能,这样就可以使Url变Restful

 SpringMVC的Controller

这样,当我们Url为“users/13”时,SpringMVC就会自动截取13并赋值给userId

对了,如果方法的参数名与占位符的名称一致的话,我们还可以去掉@PathVariableValue属性,就像下面这样。

四、对表单的处理

(一)表单数据处理

在上面的基础上,我们添加一个注册功能,以此来说明SpringMvc对表单的处理。

  1. Controller中添加访问注册页面的方法

 SpringMVC的Controller

  2.创建一个注册页面register.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
    <h1>用户注册</h1>
    <form method="post">
        用户名:<input type="text" name="name"/><br/>
        密码:<input type="password" name="password"><br/>
        <input type="submit" value="提交">
    </form>
</body>
</html>
View Code

相关文章: