请让我知道我需要在以下代码中进行哪些更改。 这里我将数据插入数据库,也让我知道合适的JQuery脚本。 没有下面的.jsp中的ajax部分,它工作正常。但是当我在jsp中添加jquery ajax部分时,它不起作用
here is my controller
@Controller
public class EmployeeController {
@Autowired
EmpDao dao;
@RequestMapping(value = "/index", method = RequestMethod.GET)
public ModelAndView index() {
return new ModelAndView("index", "command", new Employee());
}
@RequestMapping(value = "/addEmployee", method = RequestMethod.POST)
public String addEmployee(@ModelAttribute("SpringWeb") Employee e, ModelMap model) {
dao.saveEmployee(e);
model.addAttribute("message", "Successfully Inserted....");
return "index";
}
}

here is my form format
<form>
<table>
<tr>
<td>Roll:</td>
<td><input type="text" name="roll" id="roll"></td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" name="name" id="name"></td>
</tr>
<tr>
<td>Address:</td>
<td><input type="text" name="address" id="address"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="submit" onclick="return doAjaxPost()"></td>
</tr>
<tr>
<td colspan="2">
<div id="info" style="color: green;"></div>
</td>
</tr>
</table>
</form>
&#13;
答案 0 :(得分:0)
好吧,我发现您的JavaScript代码没有任何问题(除了您已经编写JQuery.ajax
而不是jQuery.ajax
。
错误代码405表明服务器不支持指定URL的请求方法(在您的情况下为POST
)。但正如我在这一行所看到的那样:
@RequestMapping(value = "/addEmployee", method = RequestMethod.POST)
您已经为POST
支持/addEmployee
。您已经通过检查浏览器的开发人员工具验证了请求网址是否正确生成。
因此,可能存在以下一种情况导致您的请求失败:
cache: false
。更改脚本:
$(function() {
$("form").submit(function (e) {
e.preventDefault();
var roll = document.getElementById("roll").value;
var name = document.getElementById("name").value;
var address = document.getElementById("address").value;
var dataString = 'roll=' + roll + '&name=' + name + '&address=' + address;
jQuery.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/addEmployee",
data: dataString,
success: function(data) {
$("#info").html(data);
},
error: function() {}
});
});
});
从HTML中删除onclick处理程序:
<input type="submit" value="submit">
这将动态绑定submit
事件处理程序,并阻止表单提交到URL。