通常get方式参数传递,我们使用的是?后面接参数名和参数值,现在Restful可以简化参数格式。。。。

get方式:

<a href="Test?uid=111&uname=aaa">走你</a>

Restful:

<a href="Test/111/aaa">走你</a>

后台接收:

原先:

@RequestMapping("Test")
public String Test(int uid,String uname){
  System.ou,println(uid+" "+uname);
  return "test.html";
}

Restful(使用@PathVariable):

@RequestMapping("Test/{uid}/{uname}")
public String Test(@PathVariable("uid") int id,@PathVariable String uname){
  System.ou,println(id+" "+uname);
  return "/test.html";
}

@RequestMapping中的格式必须和前端请求发送的数据格式一致,至于{}中的键名则自定义即可,@PathVariable是获取@RequestMapping中的内容,如果你在@PathVariable后面的()不指定键值,那么@PathVariable默认到@RequestMapping中找

 

补充:使用Restful风格进行传参的话,返回视图的路径必须加上“/”,如果在项目中大量使用Restful风格,那么可以在springmvc的配置文件中配置视图解析器,这样可以省略“/”。

<!-- 配置视图解析器 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/" />
        <property name="suffix" value=".html" />
    </bean>    
/*4、Restful风格参数*/
    @RequestMapping("demo4/{qname}/{qpass}")
    public String demo4(@PathVariable("qname") String name,@PathVariable("qpass") int pass)
    {
        System.out.println("执行控制器中的demo4");
        System.out.println(name+" "+pass);
        return "test";
    }

 想要解析html必须放行静态资源

<!-- 放行静态资源 -->
    <mvc:resources location="/" mapping="/index.html"></mvc:resources>

 

posted on 2020-06-18 19:23  秋野ys。  阅读(2143)  评论(0)    收藏  举报