getParameters一直返回null

时间:2015-01-26 21:40:51

标签: java javascript html jsp servlets

因此,我无法从客户端jsp检索信息。 javascript执行,并且警告打印,但是在java servlet中查询变为null,然后将null写入记录器。我似乎无法弄清楚为什么查询现在为空。

HTML:

<div id="query">
    <div id="querybar">
        <form onsubmit="query();return false;" method="get">
        <input type="text" id="querytext" placeholder="Run a query" name="querytext">
        </form>
        <div id="queryimg-container">
            <img src="styles/magnifyingglass.png" id="queryimg" alt="" />
        </div>
    </div>
</div>

JS:

function query() {
    $.get('QueryHelper', function(data) {
        alert("Somesortofalert");
    });
}

Java Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String query = request.getParameter("querytext");
    response.setContentType("text/plain");
    @SuppressWarnings("resource")
    PrintWriter writer = response.getWriter();
    sLogger.info(query);
}

任何人都可以看到任何错误吗?我在这里非常难过。

1 个答案:

答案 0 :(得分:1)

它将是null,因为没有使用该Ajax请求发送该名称的参数。

尽管onsubmit事件是由<form>事件启动的,但$.get()并未对data有任何自动了解。您可以使用$.get('QueryHelper', { querytext: 'foo bar' }, function (res) { // ... }); 参数收集或指定要包含在请求中的任何参数。

<form>

如果您引用data或其输入,则可以使用.serialize()准备字段&#39;名称和值为<form onsubmit="query(this); return false;" method="get"> <!-- ^^^^ -->

function query(form) {
    //         ^^^^

    $.get('QueryHelper', $(form).serialize(), function (res) {
        //               ^^^^^^^^^^^^^^^^^^^

        // ...
    });
}
{{1}}