SpringMVC的控制层,视图层讲解

  • Post author:
  • Post category:其他


1,SpringMVC全貌

2,控制层(Controller)

在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。

(1)简单的Controller代码

@Controller
@RequestMapping("/test")

public class HomeController {
	
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Model model) {
		return "index";
	}	
}

@Controller  定义这个类是一个控制器类

@RequestMapping(“/test”)  映射 Request 请求,比如

http://localhost:8080/test/showInputPage

,就会映射到这个类上,之后根据

showInputPage

去匹配具体方法。

@RequestMapping(value = “/showInputPage”, method = RequestMethod.GET) 往往具体类方法上会这么写,和之前类上面定义的上下文结合,如本例,就会把

http://localhost:8080/test/showInputPage

映射的本方法上做request请求。这里特意定义了请求方法(method = RequestMethod.POST)为POST请求,也可以直接用@PostMapping注解直接表面映射Post请求。

return “index”会直接返回给SpringMVC框架,框架根据定义,去调用index.jsp

(2)控制层和展示层之间的数据传递

控制层获取前端传过来的数据,如下面例子,我们定义的入参String info,那么前端调用时,参数名和变量名相同状况下,SpringMVC和自动匹配,我们只需要直接使用就可以了,如下面代码变量名为info,那么我们在前端调用的时候,如下面URL,使用info=12344向后端传送数据,后端就可以直接在变量中回去前端传送的值,12344


http://localhost:8080/test/InputData?info=12344

那么前端如何获取后端返回数据呢?

方法有很多种,在SpringMVC框架下,向JSP传送数据,主要靠Model方式,如上面代码 model.addAttribute(“infoView”,info); 定义了名字为infoView的参数的内容为info字符串。之后model内容就会传送给JSP。

JSP如何使用model呢?

如下面代码,需要使用model内容的地方${infoView},用${}标记起来,JSP就会去找大括号种保住的参数名的对应值,放到页面中。

<HTML>
<HEAD>
<TITLE>hello world</TITLE>
<meta charset="utf-8">
</HEAD>
<BODY>
<P>Get value from server ${infoView}</P>
</BODY>
</HTML>



版权声明:本文为weixin_41501963原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。