給定一個彈簧MVC的控制器方法:如何在Spring MVC控制器方法中檢查未綁定的請求參數?
@RequestMapping(value = "/method")
public void method(ParamModel params) { /*...*/ }
與模型類:
public class ParamModel { public int param1; }
以下兩個結果如預期的/所需的:
- 請求與
param1=1
:method
完成成功。 - 請求與
param1=blah
:JBWEB000120: The request sent by the client was syntactically incorrect.
然而...
- 如果請求與一個附加的參數(例如
nonexistentparam=1
)製成,沒有錯誤。
如果包含任何不屬於此API的參數,是否有方法確保請求被驗證並被拒絕?
我還沒有看到自己需要這樣做,我找不到任何直接解決它的文檔,但似乎您可能需要配置(或子類)容器的'RequestMappingHandlerAdapter'。 – chrylis
如何區分無效的請求參數?請求參數未映射到控制器參數的事實並不意味着它是無效的請求參數,因爲可能有其他組件使用它,例如, servlet過濾器,或者它只是簡單地通過並在一個隱藏的領域再次呈現。 –
@chrylis需要這樣做是由分離的客戶端/服務器開發驅動的。我正在研究可能會發生變化的服務器端API,如果例如參數被重命名或棄用(而不是默默忽略它們),客戶端請求會中斷。 –