Restful風格參數


通常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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM