jsp中利⽤jquery+ajax传递json格式参数与前后台之间
经过⼀段时间的实验琢磨,终于将前后台之间的参数传递搞定了,实验所⽤⼯具myeclipse+structs1.2。
总结:容易出错的地⽅:1.ajax中data的格式⼀定要写对,这⾥举了两种形式,⼀种是  data:{参数:“”}  另⼀种是  data:“参数=”+变量。
2.后台传递到前台数据转化为json格式,步骤要掌握好。
3.在js使⽤jquery必须要引⽤进来,否则会不执⾏jquery语句,这个问题困扰了我半天才解决掉,菜鸟的悲哀啊。jquery引⽤流程如下:⽹上下载jQuery.js,jquery-1.
4.2.min.js两个js⽂件,放在webroot下的⽂件夹js中,引⽤代码如下:
<script src="<%=path%>/js/jQuery.js" language="javascript"type="text/javascript"></script>
<script src="<%=path%>/js/jquery-1.4.2.min.js" language="javascript"type="text/javascript"></script>
其中<%=path%>就代表了根⽬录wenroot⽂件⽬录。
4.ajax的url路径必须要写对。
5.当前台没有传递参数到后台时,data可以不⽤写,或⽤data:{}代替。
前台代码如下:
var checkValue=$("#s1").val();
//这个var是获取的id问s1的select选择的opention值
$
.ajax({
type : "post",
url : "getShowDataList.do",
async : true,
//data:{data:""},这种也可以
data :
"filepath="+checkValue
//data:中的是传递到后台的数据,这⾥数据格式为json格式
,
dataType : "json",
error : function() {
//alert(checkValue);
alert('加载失败!');
},
success : function(json) {
//这⾥的json是后台传递过来的数据,这⾥数据格式也是json格式
前台获取后台的json格式list数据集,这段写在function中
jquery ajax例子var points = [];//创建数组
for ( var i = 0; i < json.length; i++) {
var str = new OpenLayers.LonLat(json[i].lon,
json[i].lat);
points.push(str);
}
后台代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,  HttpServletRequest request, HttpServletResponse response) {
String filepath = Parameter("filepath");
//获取前台传递过来的filepath
System.out.println(filepath);
List<Show> datalist = getShowData(filepath);
response.setContentType("appliction/json;charset=utf-8");
JSONArray jsonArray = JSONArray.fromObject(datalist);
//下⾯是传递后台json格式的list数据集到前台
try {
PrintWriter out = Writer();
out.print(jsonArray);
for (int i = 0; i < jsonArray.size(); i++) {
System.out.(i));
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。