2014-09-03 105 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