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 SearchvisualSearch.searchQuery.facets()

任何帮助都是非常可观的。

编辑 1

将数据传递给 servlet 的代码片段

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

        }
4

1 回答 1

1

根据您提供的查询字符串(根据您还发布的 chrome 表示,这看起来不正确),两个不同的参数被发送到服务器。第一个被命名qryStr[0][Value]并具有值EMPNAME,第二个被命名qryStr[1][Search]并具有值jack

因此,这是两个完全不同的参数:它们的名称不同。

request.getParameterValues("qryStr")返回名为 的参数的值qryStr。因此,如果查询字符串是,它将返回 EMPNAME 和 jack

 qryStr=EMPNAME&qryStr=jack

即,如果指定的参数qryStr被发送两次,分别使用EMPNAMEjack作为各自的值。

要获取 servlet 中第一个参数的值,您需要调用request.getParameter("qryStr[0][Value]"). 要获取第二个参数的值,您需要调用request.getParameter("qryStr[1][Search]"). servlet API 没有提供任何方法来帮助您解析这些参数并从中生成类似于参数网格的东西。你必须自己做。

于 2013-11-03T09:10:53.873 回答