- 首先挺忧伤的,今天刚开始尝试注解开发的时候,一直在报一个cacheBean无法加载。。。找了一两个小时的错误吧。。最后才发现是在spring文件里配了包扫描,但是在springmvc里没有配,spring和springmvc的bean如果分俩配置文件则没有通用。。。。
- 接下来就是捣鼓了一下一个注解示例,@controller @requestMaping,mvc:annotation-driven这些基本的,也没啥。
- 然后是restful,记得上一次看的时候不怎么感冒,工作中一直也没用就没管他,这次再看视频接受挺快的,,,一下就知道是怎么回事。
@RequestMapping("/urlRever/{id}")
public String urlRever(@PathVariable String id){
System.out.println(id);
return "1";
}
这样子。将传参写入url链接里面(一个比较粗浅的认识),然后在方法参数里加入@pathVariable 注解(名字起的好,顾名思义,路径可有参的)。这里琢磨了好久的是如何用angular发送restful的请求呢。。也是捣鼓了好久,最后像下面这样
var rever=$resource("/SpringMvcAno/rest/ano/urlRever/:id",{
id:'@id'
});
rever.save({},{"id":"你好"},function (success) {
console.log(success);
},function (error) {
console.log(error);
});
emmm更加重要的是web中的dispatch的配置,
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
要接受restful请求这是必不可少的(主要就是为了没有。do 。action这种拓展名)
4.这里再点一下springmvc的重定向和转发
转发:
public string forward(){
return "forward:/user/test.do";
}
重定向:
public string redirect(){
return “redirect:/user/test.do”;
}
同一个controller可以省略根路径即test.do即可
5.还有一个jsp下的springmvc回显数据(model相当于applicationContext)
requestParam
value:参数名字,即入参的请求参数名字,如value=“studentid”表示请求的参数区中的名字为studentid的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报400错误码;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值
定义如下:
public String userlist( @RequestParam(defaultValue=”2”,value=”group”,required=true) String groupid) {
}
形参名称为groupid,但是这里使用value=”group”限定参数名为group,所以页面传递参数的名必须为group。这里通过required=true限定groupid参数为必需传递,如果不传递则报400错误,由于使用了defaultvalue=”2”默认值即使不传group参数它的值为”2”,所以页面不传递group也不会报错,如果去掉defaultvalue=”2”且定义required=true则如果页面不传递group则会报错。