我正在尝试从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中,但我不知道如何继续
答案 0 :(得分:1)
如果您能提供整个错误日志,那将会很好...... 但我认为你的问题只是时间问题。请不要忘记,AJAX代表异步JavaScript和XML 。
这一点很重要,因为在异步方案中,即使您仍在等待返回某些内容,下一组命令/行也会被执行。您应该考虑回调函数。你应该把你认为应该等待特定实体的所有指令放回来处理之前。
如果您有额外的时间,可能需要阅读this。
答案 1 :(得分:1)
尝试实际发送数据
$.get("AnalysisServlet", {codeEditor: $("#codeEditor").val()}, function(responseText){
$("#commentBox").text(responseText);
});
答案 2 :(得分:0)
您需要表单包装textarea codeEditor。