我将以下表单数据从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 :(得分:1)
根据您提供的查询字符串(看起来不正确,基于您也发布的Chrome表示),将两个不同的参数发送到服务器。第一个名为qryStr[0][Value]
,其值为EMPNAME
,第二个名为qryStr[1][Search]
,其值为jack
。
所以,这是两个完全不同的参数:它们的名称不同。
request.getParameterValues("qryStr")
返回名为qryStr
的参数的值。因此,如果查询字符串是
qryStr=EMPNAME&qryStr=jack
即。如果名为qryStr
的参数已发送两次,则EMPNAME
和jack
为相应值。
要获取servlet中第一个参数的值,需要调用request.getParameter("qryStr[0][Value]")
。要获取第二个参数的值,您需要调用request.getParameter("qryStr[1][Search]")
。 servlet API没有提供任何方法来帮助您解析这些参数并从中创建类似于参数网格的方法。你必须自己做。