?
?
1. 项目中添加支持json的相关jar包, 本例中使用的是 fastjson-1.1.36.jar, struts2-json-plugin-2.3.30.jar
?
2. struts2 配置文件中,对页面跳转的路径进行添加和配置, 继承的的不再是struts-default, 而是 json-default
?
class="java"> <!-- 继承的的不再是struts-default, 而是 json-default --> <package name="ajax" namespace="/ajax" extends="json-default"> <!-- 博客内容保存成功后,跳转到列表页面 --> <action name="saveblog" class="org.navis.action.BlogAction" method="saveblog"> <!-- 配置返回类型 ,json, 取消name 属性,也不再设置跳转路径 --> <result type="json"> <!-- 添加参数,功能为:不序列化Action里为null的字段 --> <param name="excludeNullProperties">true</param> </result> </action> </package>
?
?
?
3. 后台Action 方法中,返回值必须为String 类型
?
/**
* @description 接收前台富文本编辑器中的内容
*/
public String saveblog(){
System.out.println("title:" + getTitle());
System.out.println("sticker:" + getSticker());
System.out.println("textcontent:" + getTextcontent());
//String com.opensymphony.xwork2.Action.SUCCESS = "success"
return SUCCESS;
}
?
?
?
4. 前台Ajax 脚本为:
?
<!-- Bootstrap core JavaScript -->
<script src="${basepath}/static/js/jquery-1.12.3.js"></script>
<script src="${basepath}/static/js/jquery.base64.js"></script>
<script src="${basepath}/static/js/bootstrap.js"></script>
<script src="${basepath}/static/js/editor.js"></script>
<script>
$(document).ready(function() {
$.base64.utf8encode = true;
$("#textEditor").Editor();
$("#submit").click(function(){
var title = $("#title").val();
var sticker = $("#sticker").val();
var code = $(".Editor-editor").html();
if(title == null || ""==title || sticker==null || ""==sticker || code==null || ""==code){
$('#notice').modal({
show:true
})
return;
}
$("#textcontent").val(code);
var data = $("#blogform").serialize();
$.post("${basepath}/ajax/saveblog.html",data,function(){
window.location.href="${basepath}/blog/list.html";
},"json");
});
});
</script>
?
?