進階特性—控制器請求處理器
在WebMVC模組中除了支援標準Web請求的處理過程,同時也對基於XML和JSON協定格式的請求提供支持,有兩種使用場景:
場景一:全域設置,將影響所有的控制器方法;
透過下面的參數配置,預設為default,可選值為[default|json|xml],也可以是開發者自訂的IRequestProcessor介面實作類別名稱;
ymp.configs.webmvc.request_processor_class=default
#場景二:針對特定的控制器方法進行設定;
@Controller @RequestMapping("/demo") public class DemoController { @RequestMapping("/sayHi") @RequestProcessor(JSONRequestProcessor.class) public IView sayHi(@RequestParam String name, @RequestParam String content) { return View.textView("Hi, " + name + ", Content: " + content); } @RequestMapping("/sayHello") @RequestProcessor(XMLRequestProcessor.class) public IView sayHello(@RequestParam String name, @RequestParam String content) { return View.textView("Hi, " + name + ", Content: " + content); } }
透過POST方式向http://localhost:8080/demo/sayHi
發送如下JSON資料:
{ "name" : "YMPer", "content" : "Welcome!" }
透過POST方式向http://localhost:8080/demo/sayHello
傳送如下XML資料:
<xml> <name>YMPer</name> <content><![CDATA[Welcome!]]></content> </xml>
#以上JSON和XML這兩種協定格式的控制器方法,同樣支援參數的驗證等特性;