这几天刚好用到了ajax,在此记录一哈,以免以后忘了。 jquery的$.post()和$.get()是简单的AJAX ,因此它们只能处理回话成功的请求,而出现异常是抛出;所以当需要对异常处理的时候,最好使用$.ajax(); 示例如下:记住引入jquery的包以及相关的文件。
html部分代码代码
<input type="button" value="点击测试ajax" id="btn" />
<script>
$('#btn').click(function(){
$.ajax({
tpye:"post",
url:"testview!getDate.action",
data:{
"test":1,
"test1":2
},
success:function(data){
var jsonData = eval("("+data+")");//将发送过来的数据解析为json数据
alert(jsonData.ok);
},
error:function(){
alert("error");
}
});
});
</script>
java代码
public class testAction extends BaseAction{
private String test;
private String test1;
public void getDate(){
log.info("----data"+test+test1);
/*如果不传json数据,而只是传单个字符串或其他的时,就不需要使用JSONObject了,直接这样写:
getResponse().setContentType("text/html;charset=utf-8");
PrintWriter out;
try{
out = getResponse().getWriter();
out.println(“发送成功”);
out.flush();
out.close();
}catch(Exception e){
throw new RuntimeException(e);
}
前台的data就是发送过来的值,可以直接用
*/
JSONObject json = new JSONObject();
json.put("ok", 1);
json.put("ok1", 2);
getResponse().setContentType("text/html;charset=utf-8");
PrintWriter out;
try{
out = getResponse().getWriter();
out.println(json);
out.flush();
out.close();
}catch(Exception e){
throw new RuntimeException(e);
}
}
//get,set 方法省略
.............................
}
struts2的配置文件
因为使用的异步提交,不需要刷新页面,所以不需要action有返还值;若不是使用的动态调用方法的话,那么在struts配置文件中就这样写:
<action name="名字" class="路径" method="要执行的方法">
<result name="success"></result>
</action>
//加载freemark文件,进入页面
<action name="testview" class="com.vf.testAction">
<result name="success">test.ftl</result>
</action>