基于Struts2的ajax的用法
在做JavaWeb的时候遇到一个问题,addUser的form表单我想用ajax的方式进行提交,前台数据和用Servlet一样提交,但是后台数据怎么传过来呢。
首先复习一下ajax如何提交数据:
$.ajax({
type:"POST",
url:"add.action",
data: data + "&timeid=" + new Date() + "" + Math.random(),
success:function(json){
}
});
但是sussess之后我就不会写了,怎么能传过来呢
百度了一下,基于Struts2的ajax使用有两种方法:
第一:用原生的方法,不依赖于任何插件。
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter writer = response.getWriter();
writer.print("hello ");
writer.flush();
writer.close();
第二:使用struts2-json-plugin,将jar包拷贝入WEB-INF/lib就可以了
使用这种方法要注意一下几个方面:
(1)Result的返回类型是json(@Result(name="addsuccess",type="json"))
(2)构造一个map去获取值和传递值 private Map<String,Object> map; (注意要有get、set方法)
map.put("result", "success");(你要传递的值)
在jsp里的ajax中这么用:
success:function(json){
if(json.map.result=="success")
{
alert("注册成功,请登录");
window.location.href="init.action";
}
else
{
alert("注册失败");
window.location.href="init.action";
}