在UI上有一个删除按钮,点击它我必须调用一些服务方法,它会调用从DB中获取一些值,我必须在弹出窗口中显示它。
我必须调用Action类的特定方法。所以我将任务ID和命令名称(方法名称)添加到查询字符串中。但是在行动课上我做了
的request.getParameter( “指令”) - >这导致null
请找到javascript方法。
function ajaxGetDependentTask(id)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") // For Old Microsoft Browsers
}
catch (e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") // For Microsoft IE 6.0+
}
catch (e2)
{
xmlHttp = false // No Browser accepts the XMLHTTP Object then false
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
{
xmlHttp = new XMLHttpRequest(); //For Mozilla, Opera Browsers
}
var url = "/admin/TaskEdit.do?id=" + id + "&command=findDependenciesFor";
xmlHttp.open("GET", url, true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = handleServletResponse;
xmlHttp.send();
}
在这里,我发现表单已提交,查询字符串为null。
答案 0 :(得分:0)
如果实际提交了for,那么您在服务器上看到的请求参数就是表单内的输入,而不是这里写的内容......
您应该使用jQuery,并且在form.submit()中,您应该构建自己的ajax调用(下面的示例),并且不要忘记return false;
以阻止表单提交。< / p>
您应该使用jQuery ajax进行ajax调用,以便于使用和跨浏览器兼容性:
function ajaxGetDependentTask(id){
$.ajax({
url: '/admin/TaskEdit.do',
type: 'GET',
data: {
id: id,
command: 'findDependenciesFor'
},
success: handleServletResponse,
error: function(){console.log('something bad just happened');}
});
}
$('#yourButtonId').on('click', function(){
var id = $(this).val(); // assuming that's how you get the 'id' for your example code above...
ajaxGetDependentTask(id);
});
$('#yourFormId').submit(function(){return false;});