[英]Ajax Function Not Calling Servlet
我正在从我的jsp调用Ajax javascript函数,这反过来应该加载servlet进行进一步处理。 我从jsp到ajax获取值,但是未调用servlet。 在互联网上上下搜索时,我找不到丢失的链接。
这是我在jsp中调用ajax javascript函数的地方:
<display:column title="Merge Print"><a href="#" onClick="printMerge('arg1', 'arg2')">Click Here</a></display:column>
在一个单独的ajax.js文件中,我有以下代码:
function printMerge(arg1, arg2) {
alert('In printMerge '+arg1, arg2);
new Ajax.Request('servlet/PrintMerge', {
method: 'post',
parameters: { arg1: arg1.value, arg2: arg2.value },
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
if(response =='success') {
alert('RESPONSE: SUCCESS');
reloadPage();
} else {
alert('RESPONSE: ERROR');
},
onFailure: function() { alert('FAILURE'); }
});
}
在第一个警报上,两个参数将正确显示。 因此,jsp正确地调用了该函数,并且参数已正常传递。 但是,该过程到此为止,并且永远不会进入“ PrintMerge” servlet进行进一步处理。
这是PrintMerge Servlet:
public class PrintMerge extends HttpServlet {
private static final long serialVersionUID = 1L
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String resp = serviceCall;
response.getWriter().write(resp);
}
}
这是我的web.xml:
<servlet>
<servlet-name>PrintMerge</servlet-name>
<servlet-class>com.servlet.PrintMerge</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PrintMerge</servlet-name>
<url-pattern>/servlet/PrintMerge</url-pattern>
</servlet-mapping>
类似的配置适用于其他情况。 但是,我感觉缺少了一些东西,因为ajax函数无法访问servlet。
让我知道是否可以提供其他方式以更好地可视化问题。 提前致谢。
尝试调用目标servlet的全限定名而不是servlet/PrintMerge
,然后尝试一下,例如http://[::1]/my_ctx/servlet/PrintMerge
在某些情况下,您需要使用servlet指定响应的响应内容类型,如下所示。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain;charset=UTF-8");
//String resp = serviceCall;
try(PrintWriter out=response.getWriter()){out.write(serviceCall);}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.