2013-11-03 33 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。 –