我正在编写的 servlet 需要访问所有 100 多个 POST 参数(由表单填写):参数因类型(文本、选项、选择等)而异。使用以正确顺序获取的参数,servlet 构造一些@Entity
对象实例,这些实例稍后将使用JPA
.
是否有更直观的方法将发布参数值映射到@Entity
对象,而不是循环HTTPServletRequest.getParametersMap()
并将这些值保存到临时变量中以创建对象?
如果您确保实体 bean 属性名称与请求参数名称完全匹配,那么您可以为此使用BeanUtils#populate()
Apache Commons BeanUtils。
BeanUtils.populate(entity, request.getParameterMap());
就这样。
为了更进一步,您可以采用 MVC 框架,该框架根据视图的组成方式将请求参数透明地映射到 bean 属性(模型) (甚至还有透明的转换、验证和调用 bean 操作方法!),例如作为JSF或Spring MVC。