@RequestMapping 用法詳解


@RequestMapping

RequestMapping是一個用來處理請求地址映射的注解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

RequestMapping注解有六個屬性,下面我們把她分成三類進行說明。

value, method

value:     指定請求的實際地址,指定的地址可以是URI Template 模式(后面將會說明);

method:  指定請求的method類型, GET、POST、PUT、DELETE等;

consumes,produces

consumes: 指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;

produces:    指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;

params,headers

params: 指定request中必須包含某些參數值是,才讓該方法處理。

headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。

示例:

value  / method 示例

默認RequestMapping("....str...")即為value的值;

復制代碼
@Controller  
@RequestMapping("/appointments")  
public class AppointmentsController {  
</span><span style="color: #0000ff;">private</span><span style="color: #000000;"> AppointmentBook appointmentBook;  
  
@Autowired  
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> AppointmentsController(AppointmentBook appointmentBook) {  
    </span><span style="color: #0000ff;">this</span>.appointmentBook =<span style="color: #000000;"> appointmentBook;  
}  

@RequestMapping(method </span>=<span style="color: #000000;"> RequestMethod.GET)  
</span><span style="color: #0000ff;">public</span> Map&lt;String, Appointment&gt;<span style="color: #000000;"> get() {  
    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> appointmentBook.getAppointmentsForToday();  
}  

@RequestMapping(value</span>="/{day}", method =<span style="color: #000000;"> RequestMethod.GET)  
</span><span style="color: #0000ff;">public</span> Map&lt;String, Appointment&gt; getForDay(@PathVariable @DateTimeFormat(iso=<span style="color: #000000;">ISO.DATE) Date day, Model model) {  
    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> appointmentBook.getAppointmentsForDay(day);  
}  

@RequestMapping(value</span>="/new", method =<span style="color: #000000;"> RequestMethod.GET)  
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> AppointmentForm getNewForm() {  
    </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> AppointmentForm();  
}  

@RequestMapping(method </span>=<span style="color: #000000;"> RequestMethod.POST)  
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String add(@Valid AppointmentForm appointment, BindingResult result) {  
    </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (result.hasErrors()) {  
        </span><span style="color: #0000ff;">return</span> "appointments/new"<span style="color: #000000;">;  
    }  
    appointmentBook.addAppointment(appointment);  
    </span><span style="color: #0000ff;">return</span> "redirect:/appointments"<span style="color: #000000;">;  
}  

}

復制代碼

 

value的uri值為以下三類:

A) 可以指定為普通的具體值;

B)  可以指定為含有某變量的一類值(URI Template Patterns with Path Variables);

C) 可以指定為含正則表達式的一類值( URI Template Patterns with Regular Expressions);

example B)

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)  
public String findOwner(@PathVariable String ownerId, Model model) {  
  Owner owner = ownerService.findOwner(ownerId);    
  model.addAttribute("owner", owner);    
  return "displayOwner";   
}  
原文地址:https://www.cnblogs.com/kuoAT/p/7121753.html example C)


免責聲明!

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



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