首先SpringMVC项目需要导包
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>enjoy</artifactId>
<version>5.0.3</version>
</dependency>
并且在项目中添加config.SpringBootConfig包,这个包用来进行enjoy配置和整合spring对象。
package com.ape.springwebdemo1.config;
import com.jfinal.template.Engine;
import com.jfinal.template.ext.spring.JFinalViewResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author Mr.WBY
* @version 1.0
* @since 2024/7/19
*/
@Configuration
public class SpringBootConfig {
@Bean(name = "jfinalViewResolver")
public JFinalViewResolver getJFinalViewResolver() {
// 创建用于整合 spring boot 的 ViewResolver 扩展对象
JFinalViewResolver jfr = new JFinalViewResolver();
// 对 spring boot 进行配置
jfr.setSuffix(".html");
jfr.setContentType("text/html;charset=UTF-8");
jfr.setOrder(0);
// 设置在模板中可通过 #(session.value) 访问 session 中的数据
jfr.setSessionInView(true);
// 获取 engine 对象,对 enjoy 模板引擎进行配置,配置方式与前面章节完全一样
Engine engine = JFinalViewResolver.engine;
// 热加载配置能对后续配置产生影响,需要放在最前面
engine.setDevMode(true);
// 使用 ClassPathSourceFactory 从 class path 与 jar 包中加载模板文件
engine.setToClassPathSourceFactory();
// 在使用 ClassPathSourceFactory 时要使用 setBaseTemplatePath
// 代替 jfr.setPrefix("/view/")
engine.setBaseTemplatePath("/templates/");
// 更多配置与前面章节完全一样
// engine.addDirective(...)
// engine.addSharedMethod(...);
return jfr;
}
}
一:请求
@RequestMapping
意义:处理用户的请求,相似于doget与dopost
位置:
类上:一级目录
方法:二级目录
例如:user/save
user/delete
student/save
student/delete
属性:
value = "",path = ""
表示请求路径
method=常量,此请求的类型(get,post),若不设置则此请求适配所有的请求方式
params = ""
限制请求参数,例如:params={"msg1","msg2"}表示请求路径中必须携带参数名为msg1与msg2的参数
注意:
1.超链接默认发送的是get请求
2.所有请求所携带的参数格式均为:key = value
@DeleteMapping删除
@PutMapping 修改
@GetMapping 查询
@PostMapping 新增
@RequestMapping可以点击查看源码
@Target({ElementType.METHOD, ElementType.TYPE})
METHOD==代表修饰方法,TYPE==代表修饰类
@RequestMapping("/one")
public class UserController {
@RequestMapping(value="/init")//二级目录
public String userInit(){
System.out.println("==========进入了springMVC的控制器=========");
return "success";
}
@RequestMapping(value="/show1",method ={RequestMethod.POST})
public String show1(){
System.out.println("==========进入了springMVC的控制器=========");
System.out.println("使用post方式发送请求进入");
return "success";
}
}
二:请求参数的绑定
springMVC请求参数的绑定
绑定的机制:SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的
一.支持数据类型:
1.基本类型参数:
包括基本类型和 String 类型
2.POJO类型参数:
包括实体类,以及关联的实体类
3.数组和集合类型参数:
包括 List 结构和 Map 结构的集合(包括数组)
4.使用 ServletAPI 对象作为方法参数
HttpServletRequest
HttpServletResponse
HttpSession
java.security.Principal
Locale
二.使用要求
1.发送请求中携带数据的key与方法参数的name必须一致
2.数据类型合法
@Controller
@RequestMapping("/one")
public class OneController {
/**
* 进入one.html页面
* */
@RequestMapping("/show")
public String show(){
return "one";
}
//基本类型和 String 类型作为参数
@RequestMapping("/show1")
public String show1(String msg1){
System.out.println("=====接受到用户发送数据为:"+msg1+"=======");
return "success";
}
@RequestMapping("/show2")
public String show2(String msg1,int msg2){
System.out.println("=====接受到用户发送数据为:"+msg1+"=======");
System.out.println("=====接受到用户发送数据为:"+msg2+"=======");
return "success";
}
//POJO 类型作为参数
//单一对象
@RequestMapping("/show3")
public String show3(Emp emp){
System.out.println("=====接受到用户发送数据为:"+emp+"=======");
return "success";
}
//@RequestParam
@RequestMapping("/map")
public String map(@RequestParam Map map){
System.out.println(map);
return "success";
}
//POJO 类中包含集合类型参数
@RequestMapping("/show5")
public String show5(Dep dep){
System.out.println("=====接受到用户发送数据为:"+dep+"=======");
return "success";
}
}
}
三:springMVC常用注解
1.@RequestParam
作用:
把请求中指定名称的参数给控制器中的形参赋值。
如果页面标签名称和方法参数名称不一致,可以使用此注解实现
属性:
name属性:设置参数名称
defaultValue属性:设置默认值
required属性:设置是否为必传
@Controller
@RequestMapping("/one")
public class OneController {
@RequestMapping("/show1")
public String show1(@RequestParam(name="msg1") String msg){
System.out.println("=====接受到用户发送数据为:"+msg+"=======");
return "success";
}
@RequestMapping("/show2")
public String show2(@RequestParam("msg1") String msg, @RequestParam("msg2") int num){
System.out.println("=====接受到用户发送数据为:"+msg+"=======");
System.out.println("=====接受到用户发送数据为:"+num+"=======");
return "success";
}
@RequestMapping("/show3")
public String show4(@RequestParam(name = "uname",defaultValue = "暂无用户") String name){
System.out.println("账号:"+name);
return "success";
}
@RequestMapping("/test")
public String test(@RequestParam String name){
System.out.println("账号:"+name);
return "success";
}
}
2.@RequestBody
作用:
用于获取"请求体"内容。直接使用得到是 key=value&key=value...
结构的数据,并可以转换为对象
属性:
required:是否必须有请求体。默认值是:true。
@Controller
@RequestMapping("/one")
public class OneController {
@RequestMapping("/show1")
public String show1(@RequestBody Emp emp){
System.out.println("=========="+emp+"==========");
return "success";
}
}
3.@PathVaribale
作用:
用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},
这个{id}就是 url 占位符。url 支持占位符是 spring3.0 之
后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志
属性:
value:用于指定 url 中占位符名称。
required:是否必须提供占位符。
Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。
主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,
更易于实现缓存机制等。
Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP 协议里面四个表示操作方式的动词如下:
GET:用于获取资源
POST:用于新建资源
PUT:用于更新资源
DELETE:用于删除资源
@Controller
@RequestMapping("/one")
public class OneController {
@PostMapping("/show1/{uname}/{pwd}")
public String show1(@PathVariable("uname") String msg1, @PathVariable("pwd") String msg2){
System.out.println(msg1);
System.out.println(msg2);
return "success";
}
@PostMapping("/show2/{uname}/{pwd}")
public String show2(@PathVariable String uname, @PathVariable String pwd){
System.out.println(uname);
System.out.println(pwd);
return "success";
}
}
4.@RequestHeader
作用:
用于获取请求消息头。
属性:
value:提供消息头名称
required:是否必须有此消息头
@Controller
@RequestMapping("/two")
public class TwoController {
@RequestMapping("/show1")
public String show1(@RequestHeader(value="msg1") String msg){
System.out.println(msg);
return "success";
}
}
5.@CookieValue
作用:
用于把指定 cookie 名称的值传入控制器方法参数。
属性:
value:指定 cookie 的名称。
required:是否必须有此 cookie。
@Controller
@RequestMapping("/two")
public class TwoController {
@RequestMapping("/show2")
public String show2(@CookieValue(value = "JSESSIONID",required = false)
String jsessionid){
System.out.println(jsessionid);
return "success";
}
}
标签:RequestMapping,SpringMVC,System,详细,println,out,public,String
From: https://blog.csdn.net/qq_64669006/article/details/140558451