- 3. SpringMVC Helloworld
- 3.5. 使用Thymeleaf显示页面
- 4. 接收客户端提交的请求参数
- 4.1. 准备案例
- 4.2. 通过HttpServletRequest对象获取请求参数【不推荐】
- 4.3. 将请求参数声明为处理请求的方法的参数【推荐】
- 4.4. 使用封装的类型作用处理请求的方法的参数【推荐】
- 4.5. 小结
- 5. 转发数据
- 5.1. 准备工作
- 5.2. 使用HttpServletRequest封装需要转发的数据【不推荐】
- 5.3. 使用ModelMap封装需要转发的数据【推荐】
- 5.4. 使用ModelAndView作为处理请求方法的返回值【不推荐】
- 6. 重定向
- ----------------------------------------------
- 附1:关于封装
- 附2:转发与重定向
当项目中需要使用Thymeleaf模版时,就需要添加thymeleaf的依赖,并且,由于是应用在SpringMVC项目中,还需要添加thymeleaf-spring4的依赖:
org.thymeleaf thymeleaf 3.0.11.RELEASE org.thymeleaf thymeleaf-spring4 3.0.11.RELEASE
以上依赖的备选版本还有:3.0.2,3.0.9。
由于的是Thymeleaf模版技术来显示页面,所以,还应该创建对应的HTML页面,这个页面将是客户端发出请求后,最后能够显示在浏览器中的页面!
可以在src/main/resources下创建web文件夹(该文件夹的名称是自定义的),然后在该文件夹下创建welcome.html文件:
创建好HTML文件好,可以自行设计页面的内容。
然后,需要配置ViewResolver(视图解析器),在SpringMVC中,ViewResolver是一个接口,可以使用的实现类的种类较多,对应使用不同的技术呈现页面,甚至使用不同的页面,在Java EE的默认体系下,可以使用InternalResourceViewResolver呈现JSP页面,此次使用的是Thymeleaf模版技术,所以,应该使用ThymeleafViewResolver,需要在spring.xml中进行配置,关于这个类,主要配置thymeleafEngine和characterEncoding,而thymeleafEngine的值应该是SpringTemplateEngine的对象,所以,还需要在spring.xml中配置这个类,但是,在模版引擎中,还需要配置模版解析器TemplateResolver,此次可用的TemplateResolver是ClassLoaderTemplateResolver,所以,继续添加配置!完整的配置代码例如:
完成后,还需要修改HelloController中处理请求的方法的返回值为welcome,要求根据“前缀 + 方法返回值 + 后缀”能得到页面文件的位置!所以:
@RequestMapping("hello.do")
public String showHello() {
System.out.println("HelloController.showHello()");
return "welcome";
}
如果处理请求的方法返回null,等同于返回映射的地址中小数点左侧的名称!但是,并不推荐这样处理!
全部完成后,启动项目,打开浏览器,输入网址即可访问!
另外,在SpringMVC + Thymeleaf项目中,可使用的模版解析器有ClassLoaderTemplateResolver和ServletContextTemplateResolver,使用前者,应该将HTML模版文件放在src/main/resources下,使用后者,应该将HTML模版文件放在webapp下。
4. 接收客户端提交的请求参数 4.1. 准备案例目标:在浏览器访问http://localhost:8080/项目名称/reg.do时,可以打开注册页面,页面中至少包括用户名、密码、年龄、手机号码、电子邮箱这5项数据的输入框和1个提交按钮!
首先,创建Maven Project项目,创建过程中勾选Create a simple project,Group Id为cn.tedu,Artifact Id为SpringMVC02,Packaging选择war。
当项目创建出来后,需要:
- 生成web.xml;
- 从前序项目中复制依赖的代码到当前项目的pom.xml中;
- 从前序项目中复制spring.xml到当前项目中;
- 对项目点右键,在属性中勾选Tomcat;
- 打开前序项目的web.xml,将DispatcherServlet的配置复制到当前项目的web.xml中。
然后创建cn.tedu.spring.UserController控制器类,需要注意:该类必须放在组件扫描的包下,所以,应该检查spring.xml中的组件扫描的配置。
在控制器类中添加处理请求的方法:
@Controller
public class UserController {
@RequestMapping("reg.do")
public String showReg() {
System.out.println("UserController.showReg()");
return "reg";
}
}
结合spring.xml中的配置,应该在src/main/resources下创建web文件夹,并在该文件夹下创建页面。
创建完成后,在浏览器中打开http://localhost:8080/SpringMVC02/reg.do即可看到所创建的页面。
如果需要获取客户端提交的注册请求,应该先在控制器类中再添加一个接收这个请求的方法:
@RequestMapping("handle_reg.do")
public String handleReg() {
System.out.println("UserController.handleReg()");
return null;
}
然后,在页面中,将



