struts1 + jquery + ajax学习

6 篇文章 0 订阅
5 篇文章 0 订阅

使用四种回传数据:

1.直接返回生成的HTML代码。

2.返回JS代码。

3.返回XML格式的文本字符串。

4.返回JSON格式的字符串。


返回JSON格式的字符串使用到了JSON包。

使用JSON包需要几个附加包。如下:

Json-lib requires (at least) the following dependencies in your classpath:

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

代码如下:

JSP页面:ButtonCreator.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>My JSP 'ButtonCreator.jsp' starting page</title>

		<link rel="stylesheet" type="text/css" href="css/styles.css" />
		<script type="text/javascript" src="js/jquery.min.js"></script>
		<script type="text/javascript" src="js/myJs.js"></script>
	</head>

	<body>
		<input id="button1" type="button" value="生成一组按钮" />
		<input id="button2" type="button" value="返回JS数组方式" />
		<input id="button3" type="button" value="生成一组按钮(XML)" />
		<input id="button4" type="button" value="生成一组按钮(JSON)" />
		<br />
		<div id="buttonContainer">
			button产生区域
		</div>
	</body>
</html>
JS文件:myJs.js

$(document).ready(function(){
	$("#button1").click(function(){
		$.get("buttonCreatorAAC.do",{type:"type1"},function(result){
			$("#buttonContainer").html(result);
		});
	});
	$("#button2").click(function(){
		$.get("buttonCreatorAAC.do",{type:"type2"},function(result){
			eval(result);
			var btnNames = getButtonsInf();
			var innerHtml = "";
			for(var i = 0; i < btnNames.length; i++){
				innerHtml += "<button class='newButton' value='" + btnNames[i] + "'>" + btnNames[i] + "</button>";
			}
			$("#buttonContainer").html(innerHtml);
		});
	});
	$("#button3").click(function(){
		$.ajax({
			url:"buttonCreatorAAC.do",
			data:{type:"type3"},
			dataType:"XML",
			success:function(result){
				var innerHtml = "";
				$(result).find("course").each(function(id){
					var btnName = $(this).children("name").text();
					innerHtml += "<button class='newButton' value='" + btnName + "'>" + btnName + "</button>";
				});
				$("#buttonContainer").html(innerHtml);
			}
		});
	});
	$("#button4").click(function(){
		$.get("buttonCreatorAAC.do",{type:"type4"},function(result){
			var jsonObj = eval("(" + result +")");
			var innerHtml = "";
			for(var i = 0; i < jsonObj.length; i++){
				innerHtml +="<button class='newButton' value='" + jsonObj[i] + "'>" + jsonObj[i] + "</button>";
			}
			$("#buttonContainer").html(innerHtml);
			
		});
	});
});

strut1 action类

/*
 * creator ^_^
 * 
 */
package com.esoft.demo.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class ButtonCreatorAACAction extends Action {
	String[] btnNames = {"C语言","JAVA语言","C#语言","C++语言","Ruby语言","火星语"};
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws IOException{
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		String type = request.getParameter("type");
		StringBuffer sb = new StringBuffer();
		if(type.equals("type1")){
			//生成HTML的方式来生成按钮
			sb.append("<table class='newTable'><tr><td>")
					.append("<button class='newButton' value='button1'>" + btnNames[0] + "</button>")
					.append("<button class='newButton' value='button2'>" + btnNames[1] + "</button>")
					.append("<button class='newButton' value='button3'>" + btnNames[2] + "</button>")
					.append("<button class='newButton' value='button3'>" + btnNames[3] + "</button>")
					.append("<button class='newButton' value='button3'>" + btnNames[4] + "</button>")
					.append("<button class='newButton' value='button3'>" + btnNames[5] + "</button>")
					.append("</td></tr>");
		
		}else if(type.equals("type2")){
		//通过JS数组的方式
			sb.append("function getButtonsInf(){")
				.append("var btnNames = new Array();");
				for(int i = 0; i < btnNames.length; i++){
					sb.append("btnNames.push('" + btnNames[i] + "');");
				}
				sb.append("return btnNames");
				sb.append("}");
		}else if(type.equals("type3")){
		//XML的方式生成按钮
			sb.append("<?xml version='1.0' encoding='utf-8' ?>");
			sb.append("<xml>");
			for(int i = 0; i < btnNames.length; i++){
				sb.append("<course>")
					.append("<name>")
					.append(btnNames[i])
					.append("</name>")
					.append("</course>");
			}
			sb.append("</xml>");
		}else{
		//JSON的方式生成按钮
			JSONArray jsonArray = JSONArray.fromObject(btnNames);
			sb.append(jsonArray.toString());
		}
		out.write(sb.toString());
		out.flush();
		out.close();
		return null;
	}
}

代码: http://download.csdn.net/detail/duliming1987/4510806



  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值