Java EE 8 MVC:使用bean参数
在上一篇文章中,我們看到了如何在MVC Controller中訪問query , path和form參數 。 這篇文章展示了如何使用@BeanParam批注將多個參數映射到一個對象。
讓我們重用關于表單參數的文章中的簡單HTML表單:
<form?action="submit"?method="post"><label>ID:</label><input?type="text"?name="id"?/><label>Name:</label><input?type="text"?name="name"?/><label>Role:</label><select?name="role"><option?value="admin">Admin</option><option?value="reporter">Reporter</option><option?value="accountant">Accountant</option></select><input?type="submit"/> </form>這定義了一個簡單的表單,其中包含兩個文本輸入字段和一個帶有三個選項的選擇菜單。
在上一篇有關表單參數的文章中 ,我們了解到可以通過使用@FormParam注釋控制器參數來訪問這些參數。
但是,如果表單具有多個參數,則此方法很麻煩。 在這些情況下,我們通常希望將表單參數映射到單獨的對象。 @BeanParams可以幫助我們做到這一點。
使用@BeanParam,我們可以編寫:
@POST @Path("submit") @Controller public String submit(@BeanParam User user) {// use user .. }User類如下所示:
public class User {@FormParam("id")private long id;@FormParam("name")private String name;@FormParam("role")private Role role;// getters and setters }調用controller方法時,將自動創建User的新實例。 創建的對象的字段將使用傳遞的表單參數填充。
@BeanParam和其他參數注釋
與@BeanParam一起使用的類不限于表單參數。 以前的博客文章中顯示的所有參數注釋( @QueryParam , @PathParam等)都可以在bean參數內部使用。
例如:
@GET @Path("/date/{year}/{month}") public String get(@BeanParam RequestData data) {... }public class RequestData {@PathParam("year")private int year;@PathParam("month")private int month;@QueryParam("name")private String name;// getters and setters }如果我們現在將HTTP GET請求發送到
/date/2016/02?name=john值2016、2和john將被注入字段Year,month和RequestData名稱。
快速總結
使用@BeanParam可以將請求參數注入bean。 如果您有多個參數,這特別有用。 在bean參數內部,可以使用所有其他參數注釋。
- 您可以在GitHub上找到示例源代碼。
翻譯自: https://www.javacodegeeks.com/2016/03/java-ee-8-mvc-working-bean-parameters.html
總結
以上是生活随笔為你收集整理的Java EE 8 MVC:使用bean参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mvvm 自动绑定_ZK的实际应用:MV
- 下一篇: Java 8:再见手册SQL,您好!