凯哥Java 2019-12-21
在springmvc.xml里面自己配置类型转换器
//conversionServiceFactoryBean,这里只是注册了一个服务或者说配置了一个组件(和类里面类型转换的类还没有关系)
<bean id="XXX" class="org.springframework.context.support.conversionServiceFactoryBean">
<property name="converters">//这个类是conversionServiceFactoryBean自带的方法
<set>
<bean class="类的全路径传过来"/>//自己写的代码类的全路径传过来,传过来之后才可以与上面的类建立关系
</set>
<!--开启springmvc框架注解的支持-->
<mvc:annotation-driven conversion-service:"conversionService"/>//在这里会把适配器,处理器,映射器,组件都失效,但是自定义的类型转换未生效
Servlet原生的API
<a href="param|testservlet">原生API获取</a>
RequestParam注解:
/*常用的注解@RequestParam(name="name")在这里表示的意思是JAVA的jsp页面<a href="ano|test?username=哈哈">XXX</a>的方法参数"name"传给String username*/
public String testRequestParam(@RequestParam(name="name")String username){
sout("执行了。。。");
sout(username);
return "success";
}
/*RequestBody用于获取请求内容。直接使用得到的是key=value&key=value...结构的数据,get请求方式不适用(请求参数封装到地址栏上,只有post提交才有请求体上面的
内容,不能写超链接,要写表单*/
/*获取请求体的内容*/
@RequestMapping("/testRequestBody")
//如果不加误以为String类型参数加上后是整个请求体内容)
public String testRequestBody(@RequestBody String body){}
JSP页面有
<form action="anno/testRequestBody" method="post">
用户姓名:<input type="text" name="username"/><br/>
用户年龄:<input type="text" age="age"/><br/>
<input type="submit" value="提交"/>
</form>
PathVarible注解
作用:用于绑定url中的占位符例如:请求url中/delete/{id},这个{id}就是url占位符
url支持占位符是Spring 3.0之后加入的,是Springmvc支持rost风格URL的一个重要标志
/*PathVariable注解*/
@RequestMapping(value="/testPathvariable/{sid}",method=RequestMethod.POST)
注意:火狐的RESTer插件可以模拟多个方法,Post,get,put
RequestHeader作用:用于获取请求消息头
/*获取请求头的值*/
@RequestMapping(value="/testRequestHeader")
String testRequestHeader(@RequestHeader(Value="Accept")String Header){
sout("执行了。。。");
return "success";}}
CookieValue注解,作用:用于获取指定Cookie的名称
ModelAuttbute
作用:用于修饰方法和参数,出现该方法,表示当前方法会在控制器的方法执行之前先执行。他可以修饰没有返回值的方法,也可以修饰有具有返回值的方法
应用场景:表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据
@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象进行绑定。加上@ResponseBody注解,就不会走视图解析器,不会返回页面,目前返回的json数据。