進階特性—控制器請求處理器


在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這兩種協定格式的控制器方法,同樣支援參數的驗證等特性;