Java 如何解析可选的URL参数

Java 如何解析可选的URL参数,java,refactoring,url-parameters,Java,Refactoring,Url Parameters,我有一个请求参数列表,所有这些参数都需要执行不同的操作,但所有这些参数都是可选的,其中任何一个都可以为null。我现在用一系列if语句来强制它,但我想用一些HashMap和循环来清理它。正确的方法是什么 if(request.getParameter(VALUE_STRING) != null){ complexObject.setValue(request.getParameter(VALUE_STRING)); } if(request.getParameter(TYPE_STRIN

我有一个请求参数列表,所有这些参数都需要执行不同的操作,但所有这些参数都是可选的,其中任何一个都可以为null。我现在用一系列if语句来强制它,但我想用一些HashMap和循环来清理它。正确的方法是什么

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类上添加/修改函数。

您可以从请求中获得一个getParameterMap()方法,该方法提供了所需的内容,然后您可以打开这些值。以下是关于上述方法的快速教程:

for(Map.Entry:request.getParameterMap().entrySet()){
开关(entry.getKey()){
//做事
}
}

也就是说,您直接访问请求而不使用各种MVC有什么原因吗?在大多数MVC框架中,这种类型的用例是非常简单的。

有没有一种方法可以在不使用开关的情况下实现内部功能?如果您已经这样做了,那就是一个巨大的例子。一个开关可以减少胡言乱语,在两者之间做出选择。
for (Map.Entry<String, String[]> entry : request.getParameterMap().entrySet()) {
    switch(entry.getKey()) {
        // do stuff
    }
}