我正在通过jsp页面上的ajax函数将path参数传递到servlet doput方法。
我的带ajax的jsp页面:
<form id="user-form">
<table>
<tr>
<td> User id:</td>
<td><input type="text" name="name" id="name"/></td>
</tr>
</table>
<input type="submit" value="Submit"/>
</form>
<script>
var form = $('#user-form');
form.submit(function()
{
$.ajax({
url: 'TestServlet',
data: form.serialize(),
type: 'put',
success: function(data){
console.log(data);
}
});
});
这是servlet方法的一部分,这给我带来了麻烦,为了节省清晰度,我没有放入整个代码。
protected void doPut(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//System.out.println(request);
System.out.println(request.getParameter("name"));
String resourceBaseURL = "http://localhost:8080/TEST/webapi/orders/";
String requestedOrder = request.getParameter("name");
URL url;
HttpURLConnection con;
String resultInXml = "";
System.out.println("DoPut Called");
// try to create a connection and request XML format
try {
ObjectFactory objFactory = new ObjectFactory();
Car car = objFactory.createCar();
car.setName(requestedOrder);
url = new URL(resourceBaseURL + requestedOrder);
con = (HttpURLConnection) url.openConnection();
System.out.println(url);
当我通过表单提交一些数据时,System.out确认正在调用doput方法,但是request.getParameter(“ name”)打印为null。
以下是我的控制台打印出来的副本:
null
DoPut Called
http://localhost:8080/TEST/webapi/orders/null
Put
Null是表单输入的值,但应该是我输入的名称。
在将get和post方法以常规方式在动作和方法属性中以常规方式发送到Servlt时,我可以正常使用它们。
据我所知,只能通过ajax或JQuery进行放置和删除,但我似乎无法弄清楚。
我已经在邮递员上测试了该方法,并且效果很好。
我真的很坚持,任何帮助将不胜感激。
答案 0 :(得分:0)
我想知道在声明“ form”变量时您的表单是否实际上已加载到DOM中。尝试将jQuery代码包装在DOM中准备就绪,以确保页面的所有元素都准备就绪:
$(document).ready(function() {
var $form = $('#user-form');
$form.submit(function(event) {
event.preventDefault();
var data = $form.serialize();
console.log(data);
$.ajax({
...
});
});
}