在前两篇文章中,我们了解了如何在即将到来的Java EE MVC框架中使用查询和路径参数 。 这篇文章重点介绍表单参数。

当您使用发布请求提交Web表单时,表单值将作为请求正文的一部分发送。 媒体类型(或内容类型)定义了用于在请求正文中存储值的格式。 Web表单通常使用媒体类型application / x-www-form-urlencoded。 可以使用@FormParam批注来访问使用此媒体类型发送的参数。

使用表单参数

假设我们具有以下简单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>

要处理表单值,我们可以使用以下控制器方法:

public enum Role {admin, reporter, accountant
}
@Controller
@Path("form-params")
public class FormParamsController {@POST@Path("submit")public String submitParams(@FormParam("id") long id,@FormParam("name") String name,@FormParam("role") Role role) {...}
}

使用@FormParam,表单参数可以自动映射到方法参数。 表单参数使用与查询或路径参数( 此处所述)相同的类型转换规则。 这使得将表单参数转换为基元,枚举或对象变得容易。

在字段和方法上使用@FormParam

像其他参数注释一样,@ FormParam可以用于注释字段和方法。

例如:

@Controller
@Path("form-params-fields")
public class FormParamsFieldController {@FormParam("id")private long id;@FormParam("role")private Role role;private String name;@FormParam("name")public void setNameField(String name) {this.name = name;}@POSTpublic String submitParams() {// use id, role, name}
}

在此示例中,提交的表单参数映射到字段(id,角色)和设置器(setNameField())。 然后在内部SubmitParams()中,我们可以简单地访问字段以获取表单参数。

快速总结

通过HTML表单提交的参数可以通过@FormParam获得。 像@QueryParam和@PathParam一样,可以使用@FormParam注释字段,方法和方法参数。

  • 您可以在GitHub上找到所有示例的源代码。

翻译自: https://www.javacodegeeks.com/2016/02/java-ee-8-mvc-working-form-parameters.html

Java EE 8 MVC:使用表单参数相关推荐

  1. Java EE 8 MVC:控制器的详细介绍

    Java EE MVC是为Java EE 8规划并在JSR-371中指定的基于动作的新MVC框架. 这是我的Java EE 8 MVC教程的第二篇文章. 第一篇文章介绍了基础知识,并展示了如何开始使用 ...

  2. Java EE 8 MVC:使用路径参数

    在上一篇文章中,我们看到了如何在Java EE MVC中使用查询参数 . 这篇文章继续与一个非常相似的主题:路径参数. 路径参数是请求路径的动态部分,可以使用@Path注释指定. 例如: @Contr ...

  3. Java EE 8 MVC:使用查询参数

    在上一篇有关新Java EE MVC框架的文章中,我们详细介绍了Controllers . 在本篇和以下文章中,我们将看到如何在MVC控制器中访问各种类型的请求数据. Java EE MVC大量使用了 ...

  4. Java EE 8 MVC:使用bean参数

    在上一篇文章中,我们看到了如何在MVC Controller中访问query , path和form参数 . 这篇文章展示了如何使用@BeanParam批注将多个参数映射到一个对象. 让我们重用关于表 ...

  5. Java EE 8 MVC:全局异常处理

    在之前的先前文章中,我们了解了在Java EE MVC中访问请求信息(例如查询或路径参数 )的各种方法. 这篇文章显示了如何将全局异常处理应用于MVC应用程序. 假设我们有一个控制器方法可能抛出Ill ...

  6. Java EE 8 MVC:Ozark入门

    大约一年前, 针对Java EE 8宣布了一个新的基于动作的MVC框架,简称为MVC. MVC(在JSR 371中指定)基于JAX-RS,并与Java EE技术(如CDI和Bean验证)集成. MVC ...

  7. Java EE应用程序的单片到微服务重构

    您是否曾经想过将现有的Java EE整体应用程序重构为基于微服务的应用程序需要做什么? 该博客解释了一个简单的购物车示例如何转换为基于微服务的应用程序,以及围绕它的一些担忧. 整体和基于微服务的应用程 ...

  8. java ee编译器_Java EE 8 MVC:控制器的详细介绍

    java ee编译器 Java EE MVC是为Java EE 8计划并在JSR-371中指定的基于动作的新MVC框架. 这是我的Java EE 8 MVC教程的第二篇文章. 第一篇文章介绍了基础知识 ...

  9. Java EE企业应用实战

    前 言 目前Java EE应用的开发方式大致可分为两种:一种以Spring.Hibernate等开源框架为基础,这就是通常所说的轻量级Java EE应用:另一种则以EJB 3+JPA为基础,也就是本书 ...

最新文章

  1. 机器学习--多标签softmax + cross-entropy交叉熵损失函数详解及反向传播中的梯度求导
  2. gsonformat插件_IntelliJ IDEA18个常用插件,动图演示,让你效率翻倍!
  3. TODO;FIXME;XXX
  4. tomcat 启动项目 页面文字乱码_eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法...
  5. python编写简单赌博游戏赏析及注意事项
  6. linux nginx 系统服务,linux 把nginx加入到系统服务的方法
  7. 【资料整理】cisco [acl]
  8. 引物设计软件_你的引物设计进行得如何了?这份PCR引物设计及软件使用技巧供你参考...
  9. mustache模板引擎
  10. m451dn linux驱动下载,惠普m451dn驱动下载-惠普hp m451dn打印机驱动下载 v61.120.04官方版--pc6下载站...
  11. 还不会记录脚本日志吗?戳这里 ->>> python中logging模块二次封装记录脚本的每一步脚印
  12. 物联网Wi-Fi,SIP 时代即将来临
  13. length和length()
  14. FHQ_TREAP学习笔记
  15. 《爱上跑步的13周》,让你拥有健康美丽的人生
  16. 关于更新app时出现解析包错误
  17. uniapp 富文本编辑器
  18. C-------------使用scanf输入字符串的故事;
  19. python作品-python+作品
  20. 【APPdesigner】使用appdesigner设计的一个潮流计算器

热门文章

  1. Java虚拟机是如何执行线程同步的
  2. 祝我们的所有女孩子,女生节快乐~
  3. sqlserver中常用的几个存储过程
  4. Echarts五步法加初体验
  5. 2020蓝桥杯省赛---java---B---5( REPEAT 程序)
  6. phpst安装memcache扩展_在 Ubuntu/Debian 下安装 PHP7.3 教程
  7. python重定向到socket_python套接字流重定向实例汇总
  8. kafka命令行操作
  9. MySQL基础---增删改查语法
  10. java模式匹配_用Java匹配模式