原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处
上章讲到了框架的搭建,在搭建框架的过程中我们用到了两个注解,一个是@Controller,另一个是@RequestMapping,其中@Controller用来标记控制器,@RequestMapping用来映射地址,下面来详细讲讲这两个注解的用法。
<mvc:annotation-driven />
然后我们新建一个controller,用@Controller注解标记,在里面写一个方法return一个字符串”dayaoguai”(由于没有设置字符编码,所以用拼音):
@Controller
@RequestMapping(value = "/json")
public class JsonController {
@RequestMapping(value = "/test")
public String jsonTest(){
return "dayaoguai";
}
}
写好之后我们启动项目,访问这个地址:
恩,页面直接404了
控制台也报了个错,至于为什么会这样,以后的课程中你就会知道原因了。
那么我们将@Controller换成@RestController试试:
@RestController
@RequestMapping(value = "/json")
public class JsonController {
@RequestMapping(value = "/test")
public String jsonTest(){
return "dayaoguai";
}
}
页面成功打印了dayaoguai,而控制台什么都没报。其实这就是返回了json格式的数据了,大家下去可以将”dayaoguai”这个字符串换成一个json字符串(一般用fastjson将对象转成json字符串)试试。
总结下异同:
@RequestMapping(value = "/test", method = RequestMethod.POST)
public void test(){
System.out.println("进来了");
}
改完运行之后再访问:@RequestMapping(value = "/restful/{id}")
public void restful(@PathVariable int id){
System.out.println(id);
}
这里我们还有另外两种写法:@RequestMapping(value = "/restful/{id}")
public void restful(@PathVariable("id") int userId){
System.out.println(userId);
}
@RequestMapping(value = "/restful/{id}")
public void restful(@PathVariable(value="id") int userId){
System.out.println(userId);
}
两种方式的效果是一样的。总结:
另外附上项目源码:https://share.weiyun.com/72baeaceadb60a087a22f10309deb0ce