在我的项目中,我有:
以用户个人资料信息作为参数处理http请求的servlet,即(userName =" Bob",password =" ugaBaga",address =" blabla& #34; ...)
表示用户信息的User类。 getters + setters:getName(),setName(String username)....
我的问题是,是否有一种从httpRequest参数创建新用户实例的简单方法?
类似的东西:
User newUser = createUserFromParams(new User(),httpRequestParameters);
(无需为每个30~字段编写:user.setName(parameters.getParameter(" userName"))
p.s - 我并没有真正发送密码,我无法想到一个字段名称。 密码由短信发送;)
提前感谢!
答案 0 :(得分:0)
有HttpServletRequest.getParameterMap,但是它可以提供Map<String, String[]>
,因为你可以拥有`?a = 1&amp; a = 2'。所以像BeanUtils这样的东西是行不通的。
但您可以使用java反射创建自己的实用程序类,或将请求参数转换为Map<String, String>
并使用标准bean实用程序(apache)。
答案 1 :(得分:0)
Java Ecosystem中有几个MVC框架可以处理特定类的问题 - 绑定请求参数到特定类 - 我最喜欢的一个Spring MVC。根据{{3}}框架的一个好处是:
将参数绑定到的命令/表单对象:作为bean属性或 字段,具有可自定义的类型转换,具体取决于@InitBinder 方法和/或HandlerAdapter配置
因此使用Spring Framework不需要手工绑定:Spring会为您做到这一点。所以如果不是Spring Site的信徒,你应该尝试MVC框架,不管是不是Spring。
PS:如果你仍然不能使用MVC框架,你可以使用HttpServletRequest.getParameterMap()
和古老的Apache Commons BeanUtils.populate()
(更多NIH philosofy中的信息)为您进行绑定。