2013-04-18 33 views
1

在我的项目,我有:最佳方式参数

  1. 与用户个人资料信息作为参数,即(处理HTTP请求一个servlet的userName =“鲍勃”,密码= “ugaBaga”,地址=“blabla”...)

  2. 表示用户信息的用户类。干将+ setter方法:的getName()的setName(字符串username)....

我的问题是,有一个简单的方法来创建从HttpRequest中参数的新用户实例?

类似:

用户NEWUSER = createUserFromParams(新用户(),httpRequestParameters);

(无需写:user.setName(parameters.getParameter( “username” 的)),我的每30〜字段)

PS - 我真的不发送密码,我不能”不要想到一个字段名称。 密码正在通过短信发送;)

在此先感谢!

+1

是的,有。例如,当您使用签名'User createUserFromParams(用户用户,地图<字符串,字符串>参数)'定义助手函数时! – skuntsel

+0

附注...永远不要在http请求中发送密码... –

+0

@ZackMacomber然后它会如何到达服务器?可能你的意思是'绝不通过GET请求发送密码'? – skuntsel

回答

0

有HttpServletRequest.getParameterMap,但它提供了Map<String, String[]>,因为您可能有'?a = 1 & a = 2'。所以像BeanUtils这样的东西不会。

但是,您可以使用java反射制作您自己的实用程序类,或将请求参数转换为Map<String, String>并使用标准的bean实用程序(apache)。

0

在Java Ecosystem中有几个MVC框架可以处理特定的问题,即将请求参数绑定到特定的类,这是我最喜欢的一种Spring MVC。一个根据Spring Site框架的好处是:

命令/形式对象参数绑定到:bean属性或 领域,具有定制的类型转换,这取决于@InitBinder 方法和/或所述的HandlerAdapter配置

因此,使用Spring Framework不需要手动绑定:Spring为您做到了这一点。所以如果不是NIH philosofy的信徒,你应该尝试一个MVC框架,不管是否是Spring。

PS:如果你还是不会Ø无法使用MVC框架,你可以利用的HttpServletRequest.getParameterMap()和良好的老阿帕奇百科全书BeanUtils.populate()(在method's JavaDoc更多信息)来为你做的约束力。