2014-09-03 65 views
1

我有一个请求参数列表,都需要采取不同的操作,但它们都是可选的,任何一个都可以为空。我现在用一系列if语句强制它,但我想用某种HashMap和一个循环来清理它。什么是正确的方法来做到这一点?如何解析可选的URL参数

if(request.getParameter(VALUE_STRING) != null){ 
    complexObject.setValue(request.getParameter(VALUE_STRING)); 
} 
if(request.getParameter(TYPE_STRING) != null){ 
    complexObject.setType(request.getParameter(TYPE_STRING)); 
} 
if(request.getParameter(PATTERN_STRING) != null){ 
    complexObject.setPattern(Pattern.compile(request.getParameter(PATTERN_STRING))); 
} 

我还可以在complexObject类上添加/修改函数。

回答

0

有一个getParameterMap()方法,你可以从你的请求中得到你想要的东西,然后你可以打开这些值。下面是该方法的快速教程:http://www.javatutorials.co.in/servlet-getparametermap-example/

for (Map.Entry<String, String[]> entry : request.getParameterMap().entrySet()) { 
    switch(entry.getKey()) { 
     // do stuff 
    } 
} 

话虽这么说,是有一个原因你直接访问请求,而不是使用一些各种MVC的?这种类型的用例在大多数MVC框架中相当微不足道。

+0

有没有办法做内部功能没有开关? – myrcutio 2014-09-06 17:00:48

+0

一个巨人,如果你已经有了。鉴于两者之间的选择,交换机会削减乱码。 – 2014-09-08 16:49:41