`
ljz0898
  • 浏览: 227449 次
  • 性别: Icon_minigender_1
  • 来自: 海南海口
社区版块
存档分类
最新评论

struts2 jquery json 实现ajax技术 返回list

阅读更多
jsp页面:
      
  <input type="hidden" id="currentPage2" value="1">
 <br/><br/><div></div>
										<DIV id=in_send>
		<div align="left" style="padding-left:40px; font-weight:blod; margin-top:10px;" >发表评论:</div>
			<table width="720" border="0" cellspacing="5" cellpadding="0"><tr>
			<td align="left">姓 名:</td>
			<td  align="left"><input type="text" name="picCriticismName" id="picCriticismName" style="width:220px"  maxlength="49" tabindex=1>
			<div id="nmerror" style="float:left;" >*姓名最长为50字节</div></td></tr>
			<tr><td  align="left" valign="top" class="f14" id="reTitle">内 容:</td>
			<td  align="left" ><textarea name="picCriticismContent" id="picCriticismContent" style="width:520px;height:155px"  tabindex=4></textarea>
			</td></tr>
			<tr id="3_err" style="display:none"><td>&nbsp;</td><td><div class="error" id="3_err_con"></div></td></tr>
			<tr><td valign="top">&nbsp;</td>
			<td valign="top" align="left" >
			<input  type="button" onclick="good()" value="发表评论"  >
			</td>
			</tr></table>

										
										
										</DIV>
									</DIV>

xml配置文件:
  <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    <!-- 
               作者:ljz
              时间:2010/09/15           
    -->
<struts>

  <package name="piccriticism"  extends ="json-default">
  <action name="addPicCriticism" class="PicCriticismBean" method="addPicCriticism">   
	
<result  name="success" type="json">
<param name="includeProperties">
	list5\[\d+\]\.criticismContent,list5\[\d+\]\.criticismName,list5\[\d+\]\.criticismIp,list5\[\d+\]\.criticismTime,list5\[\d+\]\.totalPage,list5\[\d+\]\.currentPage
</param>
</result>   
</action>
</package>
</struts>



package cn.ljzblog.ljz.action;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import test.SuperPicCriticims;
import cn.ljzblog.ljz.common.CalculatePage;
import cn.ljzblog.ljz.common.Page;
import cn.ljzblog.ljz.model.PicCriticism;
import cn.ljzblog.ljz.model.PicCriticismTemp;
import cn.ljzblog.ljz.service.PicCriticismServices;
import cn.ljzblog.ljz.util.ActionContextUtil;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;



/**
 * 相片评论
 * @author ljz
 * @time 2010/10/03
 */
public class PicCriticismAction extends ActionSupport implements ModelDriven<PicCriticismTemp>{
	 private PicCriticismTemp pt = new PicCriticismTemp();
	 private SuperPicCriticims sc = new SuperPicCriticims();
	 private ActionContextUtil acu = new ActionContextUtil();
	 private PicCriticism pc = new PicCriticism();
	 private String pictureDetail;
	 private String picCriticismName;
	  private String currentPage2 = "1";
	   private Page page = new Page();
	   private String firstOrLast = new String();//判断是否是首页或者是尾页
		private CalculatePage cal = new CalculatePage();
		private PicCriticismServices picCriticismServices;
		private int currentPage  = 1;
		private List<PicCriticismTemp> list5 ;
		private String picCriticismId;
   public String addPicCriticism(){
	   System.out.println("进入评论先相片action");
	   System.out.println(this.getFirstOrLast());
	   System.out.println(pt.getPicName()+"相片名称");
	   page.setPageSize(5);
	   //String sql = "select t.pic_criticism_content,t.piccriticismip,t.piccriticismtime,t.piccriticismname from t_pic_criticism t inner join t_picture pic on t.picture_id = pic.picture_id where pic.picture_name = '"+pt.getPicName()+"' order by t.pic_criticism_id desc";
	   String sql = "select t.pic_criticism_content,t.piccriticismip,t.piccriticismtime,t.piccriticismname from t_pic_criticism t inner join t_picture pic on t.picture_id = pic.picture_id where pic.picture_name = '"+pt.getPicName()+"' order by t.pic_criticism_id desc";
	   List<PicCriticismTemp> list4 = picCriticismServices.queryPicCriticismLength(sql);
	   System.out.println("list4大小:"+list4.size());
   	page.setTotalResultNumbers(list4.size());
   	page.setTotalPage(cal.getTotalPage(page.getTotalResultNumbers(), page.getPageSize()));
   	 if(this.getFirstOrLast().equals("first")){
   		 System.out.println("进入first");
    		currentPage = 1;
    	}else if(this.getFirstOrLast().equals("last")){
    		//currentPage = page.getTotalPage();
    		currentPage = cal.getTotalPage(list4.size(), page.getPageSize());    		
    		System.out.println("last页尾:"+currentPage);
    	}else if(this.getFirstOrLast().equals("next")){
    		currentPage = cal.nextPage(Integer.parseInt(this.getCurrentPage2()), cal.getTotalPage(list4.size(), page.getPageSize()));
    		System.out.println("next页尾:"+currentPage);
    	}else if(this.getFirstOrLast().equals("pre")){
    		currentPage = cal.previousPage(Integer.parseInt(this.getCurrentPage2()));
    		System.out.println("pre页尾:"+currentPage);
    	}else{
    		System.out.println("进入其他");
    		
       	Date currentTime = new Date();		  
   		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");	
   		pc.setPicCriticismContent(pt.getCriticismContent());
   		//System.out.println(pt.getCriticismIp());
   		pc.setPicCriticismIp(acu.getIpAddr(acu.getRequest()));
   		System.out.println(acu.getIpAddr(acu.getRequest())+"ip是");
   		pc.setPicCriticismName(this.getPicCriticismName());
   		pc.setPicCriticismTime(formatter.format(currentTime));
   		pc.setPictureId(Integer.parseInt(this.getPicCriticismId()));
   		System.out.println("评论内容:"+pt.getCriticismContent());
   		//System.out.println("评论者ip:"+this.getIpContent.split(";")[1]);
   		System.out.println("评论ip:"+pt.getCriticismIp());
   		System.out.println("评论者昵称:"+this.getPicCriticismName());
   		System.out.println("评论相片ID:"+this.getPicCriticismId());
         picCriticismServices.addPicCriticism(pc) ;    	
    		currentPage = Integer.parseInt(this.getCurrentPage2());
    		System.out.println("添加成功");
    	}
   	
   	 page.setCurrentPage(Integer.parseInt(this.getCurrentPage2()));
   	 System.out.println("当前是 :"+currentPage+":this:"+page.getCurrentPage());
   	 page.setBeginIndex(cal.pageToRow(this.getCurrentPage(), page.getPageSize()));
    	page.setEndIndex(cal.calLastIndex(this.getCurrentPage(), page.getPageSize()));
    	System.out.println(page.getTotalResultNumbers()+"-------------");
    	
   	//String sql = "from Criticism as criti where criti.articleId = ? order by criti.criticismId desc ";
    	System.out.println(":begin"+page.getBeginIndex()+":endindex"+page.getEndIndex());
   	list5 = picCriticismServices.queryPicCriticism(sql,  cal.pageToRow(this.getCurrentPage(), page.getPageSize()), cal.calLastIndex(this.getCurrentPage(), page.getPageSize()));
   	sc.setCurrentPage(this.getCurrentPage());
   	sc.setTotalPage(cal.getTotalPage(list4.size(), page.getPageSize()));
   	System.out.println("总共"+cal.getTotalPage(list4.size(), page.getPageSize()));
   	//sc.setPictureName(pt.getPicName());
   //	sc.setPicDetail(this.getPictureDetail());
   	list5.add(sc);
   	System.out.println(list5.size()+"list5.size");
    for(PicCriticismTemp pt :list5){
    	System.out.println(pt.getCriticismContent()+":"+pt.getCriticismIp()+":"+pt.getCriticismName()+":"+pt.getCriticismTime()+":");
    }
	   return "success";
   }
@Override
public PicCriticismTemp getModel() {	
	return pt;
}
public PicCriticismTemp getPt() {
	return pt;
}
public void setPt(PicCriticismTemp pt) {
	this.pt = pt;
}
public String getCurrentPage2() {
	return currentPage2;
}
public void setCurrentPage2(String currentPage2) {
	this.currentPage2 = currentPage2;
}
public Page getPage() {
	return page;
}
public void setPage(Page page) {
	this.page = page;
}
public String getFirstOrLast() {
	return firstOrLast;
}
public void setFirstOrLast(String firstOrLast) {
	this.firstOrLast = firstOrLast;
}
public CalculatePage getCal() {
	return cal;
}
public void setCal(CalculatePage cal) {
	this.cal = cal;
}
public PicCriticismServices getPicCriticismServices() {
	return picCriticismServices;
}
public void setPicCriticismServices(PicCriticismServices picCriticismServices) {
	this.picCriticismServices = picCriticismServices;
}
public int getCurrentPage() {
	return currentPage;
}
public void setCurrentPage(int currentPage) {
	this.currentPage = currentPage;
}


public SuperPicCriticims getSc() {
	return sc;
}
public void setSc(SuperPicCriticims sc) {
	this.sc = sc;
}
public String getPicCriticismId() {
	return picCriticismId;
}
public void setPicCriticismId(String picCriticismId) {
	this.picCriticismId = picCriticismId;
}
public PicCriticism getPc() {
	return pc;
}
public void setPc(PicCriticism pc) {
	this.pc = pc;
}
public String getPicCriticismName() {
	return picCriticismName;
}
public void setPicCriticismName(String picCriticismName) {
	this.picCriticismName = picCriticismName;
}
public List<PicCriticismTemp> getList5() {
	return list5;
}
public void setList5(List<PicCriticismTemp> list5) {
	this.list5 = list5;
}
public String getPictureDetail() {
	return pictureDetail;
}
public void setPictureDetail(String pictureDetail) {
	this.pictureDetail = pictureDetail;
}

}



由于返回的list不仅包含对象  我还想返回一些字符串  所以就写一个继承类来实现!
package test;

import cn.ljzblog.ljz.model.Criticism;
import cn.ljzblog.ljz.model.PicCriticismTemp;

public class SuperPicCriticims extends PicCriticismTemp {
      private int totalPage;
      private int currentPage;
      private String picLoginTime;
  	private String picDetail;
  	private String pictureName;
  	
	public int getTotalPage() {
		return totalPage;
	}
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
	public int getCurrentPage() {
		return currentPage;
	}
	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}
	public String getPicLoginTime() {
		return picLoginTime;
	}
	public void setPicLoginTime(String picLoginTime) {
		this.picLoginTime = picLoginTime;
	}
	public String getPicDetail() {
		return picDetail;
	}
	public void setPicDetail(String picDetail) {
		this.picDetail = picDetail;
	}
	public String getPictureName() {
		return pictureName;
	}
	public void setPictureName(String pictureName) {
		this.pictureName = pictureName;
	}
      
}

返回前台jquery 处理!

 var firstOrLast='none';	
 var params;
function go() {

		validate('next')

	}
	function end() {
		validate('last');
	}
	function first() {
		validate('first');
	}
	function gg() {
		validate('pre')
	}
	
   var validate = function(flag) { 
	   if(flag=='none'){
		   //alert(flag+"证明可以啊");
			  params ={
					  CriticismIp:$("#picCriticismIp").val(),					
					  CriticismContent:$("#picCriticismContent").val(),
				      firstOrLast:flag,
				      picName:$("#currentPicName").val(),
				      picCriticismId:$("#picCriticismId").val(),
				      picCriticismName:$("#picCriticismName").val(),
				      currentPage2:$("#currentPage2").val()
				    }
		  }else{
			  params ={
					  picCriticismId:$("#picCriticismId").val(),
					  picName:$("#currentPicName").val(),
				      firstOrLast:flag,
				      currentPage2:$("#currentPage2").val()
				    }
		  }
	   if(flag=='query'){
		   firstOrLast='first';		 
	   }else if(flag=='first'){
		   firstOrLast = 'first';
	   }else if(flag == 'pre'){
		   firstOrLast ='pre';
	   }else if(flag == 'next'){
		   firstOrLast ='next';
	   }else if(flag == 'last'){
		   firstOrLast ='last';
	   }else if(flag == 'none'){
		   firstOrLast  ='none';
		   if(params.picCriticismName==""){
			     alert("昵称不能为空");
			     return ;
			   }else if(params.CriticismContent==""){
			    	alert("评论内容不能为空");
			    	return ;
			    }
		  
			   
	   }
	 
	var url='addPicCriticism.action';
	
  
    $.ajax({
         url:url, 
         type:'post',
         dataType:'json', 
         data:params,
         success:function(data){ 
    	
    	var index = 0;
    	
    	var tar = "<TABLE style=\"BORDER-COLLAPSE: collapse\"  border=\"0\" cellSpacing=\"0\"><TBODY>";
    	 tar+="<tr><td align=\"left\" colspan=\"2\">网友评论:</td></tr>";
    	 $.each(data.list5,function(i,value){   
    		 index = i;
    		
    	
    		 tar+="<tr id=0"+i+"><td align=\"left\">"+(i+1)+"&nbsp;&nbsp;"+value.criticismName+"说:&nbsp;&nbsp;&nbsp;"+value.criticismContent+"</td></tr>";
    		 tar+="<tr id=1"+i+"><td align=\"left\">ip:"+value.criticismIp+"</td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp<td align=\"left\">&nbsp;&nbsp;&nbsp;&nbsp;时间 :"+value.criticismTime+"</td></tr>";             
                                     
         })
         
         
         
       
	tar+="<tr><td colspan=\"2\">  <table align=\"left\" width=\"100%\" id=\"table1\" style=\"display:none\">";
		tar +="<tr><td align=\"left\"><a href=\"javascript:void(0)\"><font id=\"totalpage\"  color=blue></font></a></td>";
		tar+="	<td align=\"left\"><a href=\"javascript:void(0)\"><font id=\"currentpage\" color=blue></font><font id=\"totalpage2\" color=blue></font></a>";
		tar+="</td><td><a onclick=\"first()\" style=\"cursor: hand\"><font color=blue>首页</font></a></td>";
		tar+="<td><a onclick=\"gg()\" style=\"cursor: hand\"><font color=blue>上一页</font></a></td><td>";
		tar+="<a onclick=\"go()\" style=\"cursor: hand\"><font color=blue>下一页</font></a></td><td>";
		tar+="<a onclick=\"end()\" style=\"cursor: hand\"><font color=blue>尾页</font></a></td></tr>";
	tar+="</table></tr>";
         
         
         tar+="</TBODY></TABLE>";
    	 $('#result').html(tar);    	
    	 var totalpage = data.list5[index].totalPage;
    	 var currentpage = data.list5[index].currentPage;
    	 $('#totalpage').html("总共"+totalpage+"页");
    	 $('#currentpage').html("当前"+currentpage+"/");
    	 $('#totalpage2').html(totalpage+"页");
    	 $("#currentPage2").val(currentpage);
    	
    	$('#0'+index).hide();
    	$('#1'+index).hide();
    	if(index==0){
    		 $("#table1").hide();
    		 var nocontent = "<span align=\"left\" ><font color=\"red\">沙发空缺中,请您快----------</font></span>";
    		 $('#result').html(nocontent);
    	}else{
    	 $("#table1").show();
    	 }
         }
      });
           
   }
	 

分享到:
评论

相关推荐

    Struts2 + jQuery+JSON 实现ajax

    ### Struts2 + jQuery + JSON 实现Ajax 在现代Web开发中,Ajax技术因其能够实现网页的局部刷新而被广泛采用。本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. ...

    Struts2+JSON 实现AJAX 返回对象和列表

    ### Struts2+JSON 实现 AJAX 返回对象和列表 #### 一、背景介绍 随着Web技术的发展,Ajax(Asynchronous JavaScript and XML)已经成为现代Web应用不可或缺的一部分。它通过后台与前端进行异步数据交换和操作,使...

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...

    Struts2+Jquery实现ajax并返回json类型数据

    以上就是使用Struts2和jQuery实现Ajax请求并返回JSON数据的基本流程。通过这种方式,我们可以在不刷新整个页面的情况下,实现数据的异步加载和动态更新,提高用户体验。在实际项目中,可能还需要考虑错误处理、数据...

    Struts2JQueryJson

    Struts2JQueryJson是一个基于Struts2框架的项目,主要展示了如何在前端使用JQuery库来处理由后台返回的JSON格式数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便...

    AJAX和struts2传递JSON数组

    总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...

    Struts2下的jQueryAjax请求(Json)

    struts2下通过jquery的ajax从后台传json对象并展示在web页面上的一个小例子,所需的jar包请自己下载否则无法运行,所需的包包括struts的必须包,json的支持包和struts对json的支持包

    一个简单的struts2+json+jquery 交互的例子

    Struts2、JSON和jQuery是Web开发中常用的三个技术,它们在构建动态、交互式的Web应用程序时发挥着关键作用。这个例子将展示如何整合这三个工具,实现前后端的数据交换。 首先,Struts2是一个强大的MVC(Model-View-...

    jquery的ajax传json对象数组到struts2的action

    本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    struts2-json

    客户端通常使用JavaScript或Ajax来处理JSON响应,例如使用jQuery的`$.ajax`或`fetch` API。可以解析JSON数据并动态更新页面内容。 9. **最佳实践**: - 尽量减少在JSON中传递的数据量,避免不必要的性能开销。 -...

    struts2结合JSON的Ajax支持

    在Struts2中结合JSON,我们可以将服务器端处理的结果以JSON格式返回给客户端,从而实现Ajax的无刷新更新。 首先,要在Struts2中启用JSON支持,我们需要在`struts.xml`配置文件中添加相关的拦截器栈。这通常可以通过...

    使用Struts2的JSON插件来实现JSON数据传递

    总的来说,Struts2的JSON插件大大简化了基于JSON的Web服务开发,使得Java开发者能够轻松地在Struts2框架内处理JSON数据,实现了前后端的高效通信。了解并熟练掌握这一插件的使用,对于提升Java Web应用的开发效率和...

    struts2~json~gson~jquery~ajax简单应用

    在Web开发领域,Struts2、JSON、Gson、jQuery和Ajax是几个非常重要的技术,它们各自扮演着不同的角色,但又能够很好地协同工作来构建高效、交互性强的Web应用程序。本文将对这些技术进行简要介绍,并通过一个示例来...

    struts2+jquery+json+List

    Struts2、jQuery、JSON和List是Web开发中常见的技术栈,它们在构建动态、交互式的Web应用程序中扮演着重要角色。这篇博文可能是探讨如何在Struts2框架中结合jQuery和JSON来处理List类型的数据。 Struts2是一个流行...

    AjaxStruts2Json实例

    Struts2提供了`struts2-jquery-plugin`和`struts2-json-plugin`两个插件来实现Ajax功能。在这个实例中,我们将主要使用`struts2-json-plugin`,它能够方便地将Action的结果以JSON格式返回给客户端。 1. **环境配置*...

    Struts2 加入JSON,JQUERY

    例如,你可以使用JQUERY的`$.getJSON()`函数来获取Struts2 Action返回的JSON数据: ```javascript $.getJSON('myAction.action', function(data) { // data是服务器返回的JSON对象 $.each(data.list, function...

    struts2返回json数据用query在页面接收

    在本场景中,我们将探讨如何在Struts2中返回JSON数据,并在页面上使用jQuery库的`$.ajax`或`$.getJSON`方法来接收和处理这些数据。 首先,我们需要在Struts2中配置JSON结果类型。在`struts.xml`配置文件中,添加一...

    基于Jquery+Ajax+Json实现分页显示附效果图

    ### 基于JQuery、Ajax与JSON实现分页显示技术解析 #### 技术背景与应用场景 在现代Web开发中,数据展示是一项至关重要的功能。随着数据量的增长,简单的列表展示方式已不能满足用户体验的需求。为了提升用户体验,...

    Struts2返回JSON对象.doc

    以下将详细介绍如何在Struts2中实现返回JSON对象。 首先,确保项目中引入了必要的依赖库。在提供的描述中提到了7个核心的JSON相关的JAR包,它们分别是: 1. struts2-json-plugin-2.1.8.1.jar - Struts2 JSON插件,...

Global site tag (gtag.js) - Google Analytics