首先我们先创建一个springboot项目,详情见另外一篇博文
创建完成后简单的介绍下文件目录,如下:
Application类呢,是创建springboot项目的时候自带的,这个时候建议将该类移至根目录下。
TestDemo.java类呢是一个简单的测试类,内容如下,也比较的简单:
@RestController
public class TestDemo {
@RequestMapping("/hai")
public String test(String name, String password){
System.out.println("name:" + name + ",password:" + password);
return "/JunitTest-springboot/src/main/java/com/example/controller/TestDemo.java";
}
}
然后运行JunitTestSpringbootApplication.java类中的main方法。
在浏览器地址栏中输入http://localhost:8080/hai?name=zhang&password=567
结果示意图:
首先呢编写一个实体类bean,代码如下:
public class Person {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Person [name=" + name + ", password=" + password + "]";
}
}
在上面TestDemo.java类中编写一个新的测试方法,代码如下:
@RequestMapping("/haha")
public String test2(Person p) {
System.out.println(p);
System.out.println("name:" + p.getName() + ",password:" + p.getPassword());
return "methond = test2";
}
在浏览器地址栏中输入:http://localhost:8080/haha?name=zhang&password=888
结果如下:
首先区分下加与不加的区别吧:
@RequestMapping("/test3")
public String test3(@RequestParam String name) {
System.out.println("name: " + name);
return "method = test3";
}
@RequestMapping("/test3")
public String test3(String name) {
System.out.println("name: " + name);
return "method = test3";
}
第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?name=? 才能执行相应的方法
第二种 可带参数也可不带参数 就是说你输入 localhost:8080/list 以及 localhost:8080/list?name=? 方法都能执行
当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了
如下:
@RequestMapping("/test3")
public String test3(@RequestParam(required = false) String name) {
System.out.println("name: " + name);
return "method = test3";
}
当然你也可以设置里面defaultValue的属性
@RequestMapping("/test3")
public String test3(@RequestParam(defaultValue = "zhanglala") String name) {
System.out.println("name: " + name);
return "method = test3";
}
结果如下:
里面还有一个value属性也讲一下, 前面所有的方法 传入的参数必须为parentId 才能接收到值
但是如果你加了value属性,这样会用username代替name,也就是说你地址里面传入的参数名称为username,例如
http://localhost:8080/test3?username=zhanghaha
代码如下:
@RequestMapping("/test3")
public String test3(@RequestParam(value="username") String name) {
System.out.println("name: " + name);
return "method = test3";
}
结果如下: