spring框架之springMVC

创建步骤

1、创建spring initialnizr模块,在导入模板的时候选择spring web,这样才会resourse目录下才会有static(所有的资源外部可以访问,可以通过文件名加后缀名访问)与template(资源外部不可访问,不可以通过文件名加后缀名访问)目录。
2、导入 freemarker.jar包,在template目录下新建跳转页面,在properties下写如下代码:spring.freemarker.suffix=.html,表示资源目录下的所有html都认为是是一个freemarker模板。
在控制类下的方法实现跳转的时候可以直接写html的文件名字,实现页面的跳转。
3、创建控制器类,在类名前添加@Controller来声明这是一个控制器类。在响应的方法前添加@RequestMaping来指定请求响应的方法。
4、运行Application容器,在游览器的地址栏发出请求,即完成。
注意:一个@RequestMaping对应一个方法,不可以有一个以上相同路径的请求。

常用浏览器向服务器传值方式

1、@@RequestParam(“name”) String name,的方式得到视图层的参数。
2、通过action=“指令?变量1=参数1&变量2=参数2”。
3、通过action=“指令/变量”,配合Requestmapping("/指令/{变量}"),再通过@pathvariable(“变量”)String id接受路径变量。缺点是只能传递一个变量。
4、通过对象传值。通过注解@ModelAttribute User user将提交来的表单看成一个model对象,再创建一个实体类,也就是User类,实体类的属性与表单的属性名要保持一致,才能实现前后端绑定数据。

常用服务器到浏览器传值方式

1、通过ModelAndView的对象将参数传给前端,需要注意的是,需要与前端的字段名一致。
服务器端代码:

//响应的指令
@RequestMapping("/back1")
   public ModelAndView backtoweb() {
   String username = "zhuding";
   String pwd = "111";
   //BacktoWeb为资源目录下的一个HTML文件名,表示要传回的网页
   ModelAndView modelAndView = new ModelAndView("BacktoWeb");
   modelAndView.addObject("username", username);
   modelAndView.addObject("pwd", pwd);
   return modelAndView;
}
}

前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--对应于服务端的username与pwd-->
${username}你好,你的密码是${pwd}
</body>
</html>

2、通过Model对象,model是一个域对象,不需要申明创建对象,而是由容器创建。代码如下

@RequestMapping("/backtoweb")
public String backtomodel(Model model){
//为模型对象赋值
    model.addAttribute("username","李四");
    model.addAttribute("pwd","1232");
    //传给前端页面
    return "BacktoWeb";

}

3、@RequestBody会将返回的值以Json的形式的数据直接输出在页面上。

注意

1、在创建Controller类的时候应该创建在Application容器目录同级或者是子目录下,才能被容器扫描到,也可以添加@ComponentScan("")来扫描指定包名下的,但缺点在于,指定一个目录他就只会在指定的该目录下扫描,同级和子目录下都不会扫描。
2、@RequestBody+@Controller=@RestController,@RequestBody可以声明在类上面,也可以申明在方法上面。

你可能感兴趣的:(spring,java)