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参数相关推荐
- Java EE 8 MVC:控制器的详细介绍
Java EE MVC是为Java EE 8规划并在JSR-371中指定的基于动作的新MVC框架. 这是我的Java EE 8 MVC教程的第二篇文章. 第一篇文章介绍了基础知识,并展示了如何开始使用 ...
- Java EE 8 MVC:使用表单参数
在前两篇文章中,我们了解了如何在即将到来的Java EE MVC框架中使用查询和路径参数 . 这篇文章重点介绍表单参数. 当您使用发布请求提交Web表单时,表单值将作为请求正文的一部分发送. 媒体类型 ...
- Java EE 8 MVC:使用路径参数
在上一篇文章中,我们看到了如何在Java EE MVC中使用查询参数 . 这篇文章继续与一个非常相似的主题:路径参数. 路径参数是请求路径的动态部分,可以使用@Path注释指定. 例如: @Contr ...
- Java EE 8 MVC:使用查询参数
在上一篇有关新Java EE MVC框架的文章中,我们详细介绍了Controllers . 在本篇和以下文章中,我们将看到如何在MVC控制器中访问各种类型的请求数据. Java EE MVC大量使用了 ...
- Java EE 8 MVC:Ozark入门
大约一年前, 针对Java EE 8宣布了一个新的基于动作的MVC框架,简称为MVC. MVC(在JSR 371中指定)基于JAX-RS,并与Java EE技术(如CDI和Bean验证)集成. MVC ...
- Java EE 8 MVC:全局异常处理
在之前的先前文章中,我们了解了在Java EE MVC中访问请求信息(例如查询或路径参数 )的各种方法. 这篇文章显示了如何将全局异常处理应用于MVC应用程序. 假设我们有一个控制器方法可能抛出Ill ...
- java ee编译器_Java EE 8 MVC:控制器的详细介绍
java ee编译器 Java EE MVC是为Java EE 8计划并在JSR-371中指定的基于动作的新MVC框架. 这是我的Java EE 8 MVC教程的第二篇文章. 第一篇文章介绍了基础知识 ...
- java jax-rs_在Java EE 6中将Bean验证与JAX-RS集成
java jax-rs JavaBeans验证(Bean验证)是Java EE 6平台的一部分提供的新验证模型. 约束通过以JavaBeans组件(例如托管Bean)的字段,方法或类上的注释形式的约束 ...
- 在Java EE 6中将Bean验证与JAX-RS集成
JavaBeans验证(Bean验证)是一种新的验证模型,可作为Java EE 6平台的一部分使用. 约束条件支持Bean验证模型,该约束以注释的形式出现在JavaBeans组件(例如托管Bean)的 ...
最新文章
- 使用Keras/TensorFlow模型构建属于你的Chatbot API
- 平凡的80后 不平凡的人生路
- arm linux下编译库System.Net.Primitives.dll和System.Xml.XmlSerializer.dll
- c++宏定义常量为什么使用移位_干货 | C语言系列3——常量,运算符,常用数学函数.........
- Mysql的库与表的基本操作
- vs2008 生成项目xml文件和路径配置
- 20155202 《Java程序设计》实验二(面向对象程序设计)实验报告
- linux刷windows phone,老机焕新生!Lumia 950XL也能跑Win10
- openwrt打印服务器硬件需求,openwrt打印服务器
- FreeCAD源码分析:Path模块
- 【时序】时间序列领域的 GAN 模型综述论文笔记
- 人类简史--经典语句摘录
- 几万年前,孙悟空的一次删库跑路...
- 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用
- 实际我的暗影精灵4设置U盘启动的方法
- Winpcap 动态链接库调用npf.sys
- openlayer 画圆Circle实际半径解决方案
- 计算机毕业设计springboot驾照一点通的设计与实现02bpd源码+系统+程序+lw文档+部署
- 上计算机课怎么设计表格,怎么在电脑上制作表格,比如排班表?
- 在linux服务器上使用命令行下载百度网盘中的文件
热门文章
- jstack命令:教你如何排查多线程问题
- java实现动态验证码源代码——绘制验证码的jsp
- Android 对话框,确定取消
- Android RaingBar评分条的使用
- Android之Bitmap高效缓存以及android缓存策略
- Linux下安装nginx (tar解压版安装) nginx1.16.1
- 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误
- android 新的布局,Android新布局方式ConstraintLayout快速入门教程
- python中seaborn画swarm图_Python可视化 | Seaborn5分钟入门(四)——stripplot和swarmplot
- linux-basic(7)linux文件与目录管理