欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Struts2 使用ajax 博客分类: struts2javajavascriptjsonajaxjquery struts2javajsonajaxjQuery 

程序员文章站 2024-03-24 13:33:52
...

 

 

1. 项目中添加支持json的相关jar包, 本例中使用的是 fastjson-1.1.36.jar, struts2-json-plugin-2.3.30.jar

 

2. struts2 配置文件中,对页面跳转的路径进行添加和配置, 继承的的不再是struts-default, 而是 json-default

 

	<!-- 继承的的不再是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>