SpringMVC基础操作:第一个SpringMVC程序
1、在SpringMVC之中把每一个控制层的代码成为一个Action,这个Action不需要去继承任何一个类,利用注解就可以表示我们所需要的控制器定义。定义一个com.gwolf.action.EmpAction程序类:package com.gwolf.action;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/pages/emp/*")public class EmpAction { Logger logger = LoggerFactory.getLogger(this.getClass()); @RequestMapping("echo") @ResponseBody public String echo(String msg) { return "ECHO " + msg; }}
2、通过这个时候的Action的定义可以充分的发现以下特点:1、SpringMVC里面对于参数的接收直接在方法上定义即可;2、里面所有使用的方法可以由永不自己来定义是否需要返回数据;3、整体的路径配置以及多业务的配置都分厂的简化;测试:http://localhost:8080/SpringMVC/pages/emp/echo.action?msg=hello
3、在SpringMVC中,控制层的处理逻辑如下图:
4、为了更加符合于MVC的设计,我们认为这个时候应该把处理后的数据发送回jsp页面来显示,而有一个控制层跳转到jsp页面需要进行参数传递,往往使用request属性范围,而这个request属性范围可以直接通过ModelAndView来控制,加入说现在希望其跳转到"/pages/show.jsp"页面;package com.gwolf.action;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping("/pages/emp/*")public class EmpAction { Logger logger = LoggerFactory.getLogger(this.getClass()); @RequestMapping("echo") public ModelAndView echo(String msg) { ModelAndView md = new ModelAndView("/pages/show.jsp"); md.addObject("info","Echo:" + msg); return md; }}
5、ModelAndView就相当于替代了之前的request.getRequestDispatcher()里面的一些方法。
6、定义show.jsp页面,显示request属性范围中的内容。<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <h1>${info }</h1></body></html>
7、在浏览器中访问地址就可以看到页面的访问结果