2013-11-03 22 views
1

我從JSP頁面的格式如下獲取表單數據請求ParameterNames(),並加入到集合對象

qryStr[0][Value]:EMPNAME 
qryStr[1][Search]:jack 
qryStr[2][filter]:or 
qryStr[3][Value]:EMPNO 
....... 
....... 

我使用Enumeration enum = request.getParameterNames()和檢查字符串是否包含字符串qryStr

我想什麼要做的是如果字符串包含qryStr然後我想將它添加到某種集合對象並構造一個查詢。

這是最好的方法是什麼?

查詢代碼段

select * from my_table 
WHERE contains (my_col,'jack 
INPATH (/HELPER/EMPNAME)') > 0 

如果用戶選擇喜歡的值qryStr[0][Value]:EMPNAMEqryStr[1][Search]:jackqryStr[2][filter]:orqryStr[3][Search]:jill然後查詢看起來像

select * from my_table 
WHERE contains (my_col,'jack or jill 
INPATH (/HELPER/EMPNAME)') > 0 

如果用戶選擇喜歡qryStr[0][Value]:EMPNAME值,qryStr[1][Search]:jackqryStr[2][filter]:orqryStr[3][Value]:SUPERVISOR那麼查詢將看起來像

select * from my_table 
WHERE CONTAINS(my_col,'jack INPATH(/HELPER/EMPNAME) and jill 
INPATH(/HELPER/SUPERVISOR)') > 0; 
+0

可以根據您發佈的數據顯示查詢的結果嗎? – A4L

+0

@ A4L我已經包含查詢代碼片段。我的查詢有點複雜,這就是我試圖使用集合的原因。查詢必須根據我收到的值構建,我需要檢查值是否爲空。 – user75ponic

+0

您顯示的結果查詢不太清楚。你能解釋你是如何從原始數據中獲得的? 「過濾器」和其他「價值」在哪裏?所有那些地方都有'EMPNAME'和'jack'的地方?你是指'contains(my_col,'|| jack ||'INPATH(/ HELPER /'|| EMPNAME ||')')> 0'? – A4L

回答

2
for (Map.Entry<String, String[]> entry: request.getParameterMap()) { 
    String parameterName = entry.getKey(); 
    if (parameterName.startsWith("qryStr")) { 
     // do what you want with the parameter name and its values 
    } 
} 
+0

我可以按順序讀取它插入到Collection中的順序嗎? – user75ponic

+0

閱讀什麼?哪個集合? –

+0

對不起,我被誤解了。 – user75ponic