Spring Boot整合Spring MVC

Spring Boot整合Spring MVC

集成Spring MVC

Spring Boot整合Spring MVC只需在pom.xml中引入

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

配置Spring MVC,application.yml 示例:

server:

port: 8080 # web服务端口号

servlet:

multipart:

enabled: true # 启用文件上传

location: # 上传文件临时保存位置

max-file-size: 50MB # 单个文件上传最大大小限制

max-request-size: 100MB # 单次请求主体最大大小限制

mvc:

format:

date: yyyy-MM-dd # 日期格式

date-time: yyyy-MM-dd HH:mm:ss # 日期时间格式

time: HH:mm:ss # 时间格式

servlet:

path: / # servlet路径

static-path-pattern: # 匹配静态资源路径

view:

prefix: # view前缀

suffix: # view后缀,如:.jsp

用户请求参数传递

前端页面可以通过表单、url传值、ajax方式等传输数据到控制端

相关注解:

**@RequestParam**

**@PathVariable**

**@ RequestBody**

**@ ModelAttribute**

方式1:参数名一致

若传送form表单数据,表单属性名称与Controller中方法参数名保持一致,这时可以不用注解,直接传

参。

前端页面:

username:<input type="text" name="username"><br>

tel:<input type="text" name="telephone"><br>

<input type="submit" value="注册">

</form>

控制器(Controller)代码:

@RestController

public class UserController {

@RequestMapping("/user")

public String test1(String username,String telephone){

return username+"\n"+telephone;

}

}

使用url请求传参,请求的url为:

http://localhost:8080/user?username=aaa&telephone=1111参数名和方法的属性名保持一致,同

样可以将值传输到Controller方法中。

方式2:参数名不一致

前端的参数名与Controller方法中的参数名不一致时,可以使用@RequestParam注解来指定URL参数与

方法参数之间的映射关系

​​

username:<input type="text" name="username"><br>

tel:<input type="text" name="telephone"><br>

<input type="submit" value="注册">

</form>

控制器(Controller)代码:

@RestController

public class UserController {

@RequestMapping("/user")

public String test1(@RequestParam(value = "username",required = false) String

name, @RequestParam(value = "telephone",required = false) String tel){

return name+"\n"+tel;

}

}

默认参数值不能为空(required=true),否则会出现异常信息,可以使用required属性指明参数是否允许

为空

方式3:Restful风格

在RESTFul风格的请求中,常将参数在url中以“/param”的方式进行传递,这时就需要使用

@PathVariable注解从url中获取相应的参数值

@RestController

public class UserController {

@RequestMapping("/user/{name}/{tel}")

public String test1(@PathVariable(value = "name",required = false) String name,

@PathVariable(value = "tel",required = false) String tel){

return name+"\n"+tel;

}

}

@PathVariable注解的value属性值和地址中的第一个参数名一致,表示把此参数值传给方法的第一个参

数。

方式4:@RequestBody注解方式

前端js代码:

$.ajax({

url:"/login",

type:"POST",

data:'{"username":"admin","pwd","123"}',

contentType:"applicaation/json charset=utf-8",

success: function(data){

alert("success ! ");

}

});

控制器(Controller)代码:

@RequestMapping("/login")

public String login(@RequestBody User user){

return user.getUsername()+" :"+user.getPwd();

}

或者:

@RequestMapping("/login")

public String login(@RequestBody String username,@RequestBody String pwd){

return username+" :"+pwd;

}

用户响应处理

返回对应视图页面

如html页面或jsp页面,类名使用@Controller**注解**,即返回对应的页面

返回数据

如JSON格式的数据,若在类名或方法上结合使用了@ResponseBody**注解**,则返回 JSON格式

的数据

@RestController注解

可以在类名直接 使用@RestController注解,替代@Controller+@ResponseBody这两个注解

Spring MVC实例

1. 创建实体类User

package cn.js.ccit.vo;

import lombok.Data;

//实体类

@Data

public class User {

private Integer id;

private String username;

private String pwd;

private String telephone;

}

2. 创建前端页面 userReg.html

​​

<html lang="en">

<head>

<meta charset="UTF-8">

​​

</head>

<body>

​​

username:<input type="text" name="username"><br>

pwd:<input type="password" name="pwd"><br>

tel:<input type="text" name="telephone"><br>

<input type="submit" value="注册">

</form>

</body>

</html>

3. 创建控制端UserJSONController

/\*\*

\*返回用户数据的JSON数据

\*/

@RestController

@RequestMapping("user")

public class UserJSONController {

@RequestMapping("getUser")

public User getUser(User user){

return user;

}

}

4. 结果测试

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值