使用Servlet参数的AJAX用法为null

时间:2016-02-25 13:40:59

标签: javascript jquery ajax jsp servlets

我正在尝试从textarea移交文本。在完成几项操作后,我想返回结果并将结果打印在另一个textarea中。

首先我的index.jsp:第一个textarea codeEditor有文本。 Aftler点击按钮analysisButton第二个textarea commentBox应填写。

<div class="form-group">
    <label for="codeEditor" style="margin-top: 15px;">Code:</label>
    <textarea name="codeEditor" class="form-control" id="codeEditor" rows="15" style="resize: none;"></textarea>
</div>

<button id="analysisButton" class="btn btn-default btn-block" style="margin-top: 10px;">Start analysis</button>

<div class="form-group">
    <label for="comment" style="margin-top: 15px;">Comment:</label>
    <textarea class="form-control" id="commentBox" style="resize: none;height:330px;"></textarea>
</div>

然后我的index.js:在这里我试图像在question

的第一个答案中那样使用AJAX
$('body').on('click', '#analysisButton', function(){
    $.get("AnalysisServlet",function(responseText){
        $("#commentBox").text(responseText);
    });
});

至少我调用我的bean的servlet

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {     
    MainVisitor mainVisitor = new MainVisitor();
    request.setAttribute("mainVisitor", mainVisitor);

    mainVisitor.setSql(request.getParameter("codeEditor"));

    String result = mainVisitor.getResult();
    resp.setContentType("text/html");
    resp.setCharacterEncoding("UTF-8");
    resp.getWriter().write(result);
}

我在尝试在sql

中设置变量MainVisitor时收到NullPointerException

EDITED: 我认为我的问题是我没有阅读codeEditor

的内容

我现在将var sql = $("#codeEditor").val();添加到我的JS中,但我不知道如何继续

3 个答案:

答案 0 :(得分:1)

如果您能提供整个错误日志,那将会很好...... 但我认为你的问题只是时间问题。请不要忘记,AJAX代表异步JavaScript和XML

这一点很重要,因为在异步方案中,即使您仍在等待返回某些内容,下一组命令/行也会被执行。您应该考虑回调函数。你应该把你认为应该等待特定实体的所有指令放回来处理之前。

如果您有额外的时间,可能需要阅读this

答案 1 :(得分:1)

尝试实际发送数据

$.get("AnalysisServlet", {codeEditor: $("#codeEditor").val()}, function(responseText){
    $("#commentBox").text(responseText);
});

答案 2 :(得分:0)

您需要表单包装textarea codeEditor。