当前位置: 代码迷 >> 综合 >> springmvc--REST 和@RequestParam
  详细解决方案

springmvc--REST 和@RequestParam

热度:21   发布时间:2023-12-12 01:49:14.0
1.@RequestMapping 支持 Ant 格的 URL

Ant 源地址支持 3 匹配符
– ?:匹配文件名中的一个字符
– *:匹配文件名中的任意字符
– **** 匹配多路径


– /user/*/createUser:         匹配/user/aaa/createUser/user/bbb/createUser URL

– /user/**/createUser:         匹配 /user/createUser/user/aaa/bbb/createUser URL
– /user/createUser??:          
匹配   /user/createUseraa/user/createUserbb URL

@RequestMapping("testAnt/*/abc")public String testAntPath(){System.out.println("test ant");return SUCCESS;}

hello.jsp

<a href="testAnt/1111/abc">testAnt</a><br>
2.   REST :即 Representational State Transfer。(源)表现层态转 。是目前
    最流行的一
件架 。它 结构 清晰、符合 准、易于理解、 展方便,
    所以正得到越来越多网站的采用
? 源( Resources :网 上的一个 体,或者 是网 上的一个具体信息。它
可以是一段文本、一
张图 片、一首歌曲、一 之就是一个具体的存在。
可以用一个
URI 源定位符)指向它, 种资 对应 一个特定的 URI 。要
源, 访问 它的 URI 就可以,因此 URI 一个 源的独一无二的

? 现层 Representation 源具体呈 出来的形式 ,叫做它的表 现层
Representation )。比如,文本可以用 txt 格式表 ,也可以用 HTML
式、
XML 格式、 JSON 格式表 ,甚至可以采用二 制格式。
? 态转 化( State Transfer 出一个 求,就代表了客 端和服 器的一
次交互
程。 HTTP 协议 ,是一个无状 态协议 ,即所有的状 都保存在服
端。因此,如果客
端想要操作服 器,必 手段, 器端
态转 State Transfer )。而 这种转 化是建立在表 现层 之上的,所以就是
现层 态转 。具体 ,就是 HTTP 协议 里面,四个表示操作方式的
GET POST PUT DELETE 。它 别对应 基本操作: GET 用来
源, POST 用来新建 源, PUT 用来更新 源, DELETE 用来 源。
(2)HiddenHttpMethodFilter 浏览 form 只支持 GET POST 求,而 DELETE PUT method 并不支
持,
Spring3.0 添加了一个 过滤 器,可以将 转换为标 准的 http 方法,使得支持 GET POST PUT
DELETE

1.首先在web.xml配置过滤器 HiddenHttpMethodFilter

<filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter </filter-class></filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
2. 写一个Test方法
@RequestMapping(value = "/testRest/{id}", method = RequestMethod.DELETE)public String testRestDelete(@PathVariable Integer id){System.out.println("testRest"+id);return SUCCESS;}
3. 将form表单的post请求 转为 delete请求
<form action="/springMVC-01/testRest/1" method="post"><input type="hidden" name="_method" value="put"/><input type="submit" value="TestRest DELETE"/> </form>

三.使用 @RequestParam 求参数

<1>在理方法入参使用 @RequestParam 可以把求参数传递给请求方法

@RequestParam 来映射请求参数. value 值即请求参数的参数名 required 该参数是否必须. 默认为 true,defaultValue 请求参数的默认值

 @RequestMapping(value="/testRequestParam")
 public String testRequestParam(
 @RequestParam(value="username")String un,
 @RequestParam(value="age",required=false,defaultValue="0")int age){
 System.out.println("username="+un+ ""+"age="+age);
 return SUCCESS;
 }
 

<a href="springMVC-01/testRequestParam?username=atguigu&age=11">Test RequestParam</a>















  相关解决方案