2013-11-03 67 views
0

獲取值我有以下從JSP頁面的表單數據傳遞到servlet中如何從視覺搜索形式

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

在Servlet的,我想通過request.getParameterValues("qryStr");

接收形式的數據。但是它總是返回null , 可能是什麼原因?在JSP中當提交頁面時,我正通過Visual Search visualSearch.searchQuery.facets()

任何幫助都非常值得一提。

編輯傳遞數據1個

代碼片段的servlet

function qrySearch(){ 
       $('#toolStr').datagrid('load',{ 
         url: 'myservlet', 
         qryStr: visualSearch.searchBox.value(), 
      });       

     } 
+0

向我們顯示您的相關代碼,或者至少是發送到服務器的實際查詢字符串。 –

+0

@JBNizet我已經將問題代碼片段中的數據傳遞給servlet。 – user75ponic

+0

但是我們仍然不知道datagrid函數的作用以及發送到服務器的實際查詢字符串。打開你的Chrome開發者工具窗口(或firefox中的Firebug),進入網絡選項卡,發送數據,然後將發送到服務器的查詢字符串複製並粘貼到你的問題中。 –

回答

1

根據您所提供的查詢字符串(它看起來並不正確,基於它的鍍鉻表示,你也貼),兩個不同的參數被髮送到服務器。第一個命名爲qryStr[0][Value],其值爲EMPNAME,第二個命名爲qryStr[1][Search],其值爲jack

所以,這是兩個完全不同的參數:它們的名字是不同的。

request.getParameterValues("qryStr")返回名爲qryStr的參數值。因此,它會返回EMPNAME和插孔如果查詢字符串是

qryStr=EMPNAME&qryStr=jack 

即,如果命名爲qryStr參數是爲各自的值發送兩次,用EMPNAMEjack

要獲得servlet中第一個參數的值,您需要調用request.getParameter("qryStr[0][Value]")。要獲得第二個參數的值,您需要撥打request.getParameter("qryStr[1][Search]")。 servlet API沒有提供任何方法來幫助您解析這些參數,並使其中的參數網格變得非常類似。你必須自己做。

+0

我想要使用Visual Search和每個文檔以參數在數組中以下必須使用'visualSearch.searchQuery.facets()'見選項#4 [here](http://documentcloud.github.io/visualsearch/#usage) – user75ponic

+0

有沒有什麼方法可以知道什麼是表單數據傳遞給servlet?即我如何知道'qryStr [0] [Value]','qryStr [1] [Search]'是否被傳遞? – user75ponic

+0

request.getParameterNames()返回所有參數名稱。 request.getParameterMap()返回所有參數。閱讀javadoc。 –