路径映射
传统的方式
1.创建hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Hello Spring Boot!</h1>
</body>
</html>
2.创建HelloController类
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
}
在浏览器输入"http://localhost:8080/hello"
访问hello.html
页面
使用路径映射
创建WebMvcConfig类
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("javaboy").setViewName("hello");
}
}
在浏览器输入"http://localhost:8080/javaboy"
访问hello.html
页面
类型转换器
创建UserController类
@RestController
public class UserController {
@GetMapping("/hello")
public void hello(Date birth){
System.out.println(birth);
}
}
在浏览器中输入"http://localhost:8080/hello?birth=2020–9-26"
控制台显示异常信息:
Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:
Failed to convert value of type 'java.lang.String' to required type 'java.util.Date';
nested exception is org.springframework.core.convert.ConversionFailedException:
Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2020--9-26';
nested exception is java.lang.IllegalArgumentException]
创建类型转换类DateConverter类
@Component
public class DateConverter implements Converter<String,Date> {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Override
public Date convert(String source) {
if (source != null && !"".equals(source)) {
try {
return sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
}