본문 바로가기

AJAX

ajax의 jason,xml,text 출력 비교

jguest.jsp


<%@ page  contentType="text/html; charset=UTF-8"%>

<%@page trimDirectiveWhitespaces="true"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%String cp = request.getContextPath();%>

<style type="text/css">

*{margin: 0px; padding: 0px;}

body {font-size: 9pt; font-family: 돋움;}

td {font-size: 9pt;}

a{color: #000000;text-decoration: none;}

a:active, a:hover {text-decoration: underline;color: tomato;}

.boxTF { border:1px solid; height:15px; margin-top:3px; padding:2px 2px 2px 2px; border-color:#666666; background-color:#ffffff; font-family:"굴림"; font-size:9pt; }

.selectFiled {border:1px solid; border-color:#666666; background-color:#ffffff; font-family:굴림; font-size:9pt;}

.btn1 {font-size: 9pt; color:rgb(0,0,0); background-color:rgb(235,235,235); line-height:16px; padding:1px 3px 1px 3px;}


</style>


<script type="text/javascript">


/*

 * json을 이용한 ajax

 */


$(function(){ //$(function(){}은 jsp실행과 동시에 실행됨

listPage(1);

});


function listPage(page){

var url="<%=cp%>/jguest/list.action";

$.get(url,{pageNo:page, dumi:new Date()}, function(args){

printGuest(args);

},"json");

}


function sendGuest(){

var name=$("#name").val();

var content=$("#content").val();

name=$.trim(name);

content=$.trim(content);

if(!name){

alert("이름을 입력하세요");

$("#name").focus();

return;

}

if(!content){

alert("내용을 입력하세요");

$("#content").focus();

retrun;

}

var url="<%=cp%>/jguest/created.action";

var params="name="+name+"&content="+content;

$.ajax({

type:"post"

,url:url

,data:params

,dataType:"json"

,success:function(args){

printGuest(args);

}

,error:function(e){

alert(e.resposeText);

}

});

$("#name").val("");

$("#content").val("");

}


function printGuest(args){

var s="";

var dataCount=args.dataCount;

var pageNo=args.pageNo;

var pageIndexList=args.pageIndexList;


s="<table width='600'>";

for(var idx=0; idx<args.data.length; idx++){

var num=args.data[idx].num;

var name=args.data[idx].name;

var content=args.data[idx].content;

var created=args.data[idx].created;

s+="<tr height='3'><td colspan='2' bgcolor='#dbdbdb'></td></tr>";

s+="<tr height='25'>";

s+="<td align='left'>작성자 |"+name+"</td>";

s+="<td align='right'>"+created+" | <a onclick='deleteGuest(\""+num+"\",\""+pageNo+"\")'>삭제</a></td>";

s+="</tr>";

s+="<tr height='3'><td colspan='2' bgcolor='#dbdbdb'></td></tr>";

s+="<tr height='40'>";

s+="<td valign='top' colspan='2' align='left' style='padding-left: 10px'>"+content+"</td></tr>";

s+="</tr>";

}

s+="<tr height='3'><td colspan='2' bgcolor='#dbdbdb'></td></tr>";

s+="<tr height='25'>";

s+="<td valign='center' colspan='2'>";

if(dataCount==0)

s+="등록된 게시물이 없습니다.";

else

s+=pageIndexList;

s+="</td></tr>";

s+="</table>";

$("#listGuest").html(s);

listGuest.innerHTML=s;

}


</script>



<div class="bodyFrame1">

<center>

<br/><br/>

<table width="600" border="2" bordercolor="#d6d4d6">

<tr height="30">

<td align="center">방명록</td>

</tr>

</table>

<br/>

<table width="600" border="0" cellpadding="0" cellspacing="0">

<tr height="3">

<td colspan="2" bgcolor="#d6d4d6"></td>

</tr>

<tr hight="25">

<td width="80" bgcolor="#eeeeee" align="center">이름</td>

<td widht="520" align="left" style="padding-left: 5px">

<input tpe="text" id="name" size="35" class="boxTF"/>

</td>

</tr>

<tr hight="1"><td colspan="2" bgcolor="#d6d4d6"></td>

<tr hight="25">

<td width="80" bgcolor="#eeeeee" align="center">내용</td>

<td widht="520" align="left" style="padding-left: 5px">

<textarea rows="3" cols="80" id="content" class="boxTF" style="height:50px"></textarea>

</td>

</tr>

<tr height="3">

<td colspan="2" bgcolor="#d6d4d6"></td>

</tr>

<tr hight="30">

<td colspan="2" align="right" >

<input type="button" value=" 등록 하기 " class="btn1" onclick="sendGuest();"/>

</td>

</tr>

 

</table>

<div id="listGuest"></div>

</center>

</div>

=================================================================================================================================================

GuestControlloer.java    //jason에는 콘트로러에 제이슨 객체를 이용하여 데이터를 넘겨준다.


package com.sp.jguest;


import java.io.PrintWriter;

import java.util.HashMap;

import java.util.List;

import java.util.Map;


import javax.servlet.http.HttpServletResponse;


import net.sf.json.JSONObject;


import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;


import com.sp.common.MyUtil;


@Controller("jguest.guestController")

public class GuestController {

@Autowired

private GuestService service;

@Autowired

private MyUtil myUtil;

@RequestMapping(value="/jguest/guest")

public String guest(){

return ".jguest.guest";

}

@RequestMapping(value="/jguest/list")

public void list(HttpServletResponse resp,

@RequestParam(value="pageNo",defaultValue="1") int current_page

)throws Exception{

int numPerPage=5;

int dataCount, total_page;

dataCount=service.dataCount();

total_page=myUtil.getPageCount(numPerPage, dataCount);

if(current_page>total_page)

current_page=total_page;

int start=(current_page-1)*numPerPage+1;

int end=current_page*numPerPage;

Map<String, Object> map=new HashMap<String, Object>();

map.put("start", start);

map.put("end", end);

List<Object> lists=service.listGuest(map);

String pageIndexList=myUtil.pageIndexList(current_page, total_page);

//JSON 데이터 작성

JSONObject ob=new JSONObject();


resp.setContentType("text/html;charset=utf-8");

//데이터 주입

ob.put("data",lists);

ob.put("pageIndexList",pageIndexList);

ob.put("pageNo",current_page);

ob.put("dataCount",dataCount);


PrintWriter out=resp.getWriter();

out.print(ob);

}

@RequestMapping(value="/jguest/created", method=RequestMethod.POST)

public void created(HttpServletResponse resp, Guest guest) throws Exception{

service.insertGuest(guest);

list(resp,1);

}

@RequestMapping(value="/jguest/delete",method=RequestMethod.GET)

public void delete(HttpServletResponse resp,int num,int pageNo)throws Exception{

service.deleteGuest(num);

list(resp,pageNo);

}

}


=================================================================================================================================================

=================================================================================================================================================

tguest.jsp


<%@ page  contentType="text/html; charset=UTF-8"%>

<%@page trimDirectiveWhitespaces="true"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%String cp = request.getContextPath();%>

<style type="text/css">

*{margin: 0px; padding: 0px;}

body {font-size: 9pt; font-family: 돋움;}

td {font-size: 9pt;}

a{color: #000000;text-decoration: none;}

a:active, a:hover {text-decoration: underline;color: tomato;}

.boxTF { border:1px solid; height:15px; margin-top:3px; padding:2px 2px 2px 2px; border-color:#666666; background-color:#ffffff; font-family:"굴림"; font-size:9pt; }

.selectFiled {border:1px solid; border-color:#666666; background-color:#ffffff; font-family:굴림; font-size:9pt;}

.btn1 {font-size: 9pt; color:rgb(0,0,0); background-color:rgb(235,235,235); line-height:16px; padding:1px 3px 1px 3px;}


</style>


<script type="text/javascript">


/*

 * text을 이용한 ajax

 */

 

$(function(){

listPage(1);

});


function listPage(page){

var url="<%=cp%>/tguest/list.action";

$.get(url,{pageNo:page, dumi:new Date()}, function(args){

$("#listGuest").html(args);

});

}


function sendGuest(){

var name=$("#name").val();

var content=$("#content").val();

name=$.trim(name);

content=$.trim(content);

if(!name){

alert("이름을 입력하세요");

$("#name").focus();

return;

}

if(!content){

alert("내용을 입력하세요");

$("#content").focus();

retrun;

}

var url="<%=cp%>/tguest/created.action";

var params="name="+name+"&content="+content;

$.ajax({

type:"post"

,url:url

,data:params

,success:function(args){

$("#listGuest").html(args);

}

,error:function(e){

alert(e.resposeText);

}

});

$("#name").val("");

$("#content").val("");

}



</script>



<div class="bodyFrame1">

<center>

<br/><br/>

<table width="600" border="2" bordercolor="#d6d4d6">

<tr height="30">

<td align="center">방명록</td>

</tr>

</table>

<br/>

<table width="600" border="0" cellpadding="0" cellspacing="0">

<tr height="3">

<td colspan="2" bgcolor="#d6d4d6"></td>

</tr>

<tr hight="25">

<td width="80" bgcolor="#eeeeee" align="center">이름</td>

<td widht="520" align="left" style="padding-left: 5px">

<input tpe="text" id="name" size="35" class="boxTF"/>

</td>

</tr>

<tr hight="1"><td colspan="2" bgcolor="#d6d4d6"></td>

<tr hight="25">

<td width="80" bgcolor="#eeeeee" align="center">내용</td>

<td widht="520" align="left" style="padding-left: 5px">

<textarea rows="3" cols="80" id="content" class="boxTF" style="height:50px"></textarea>

</td>

</tr>

<tr height="3">

<td colspan="2" bgcolor="#d6d4d6"></td>

</tr>

<tr hight="30">

<td colspan="2" align="right" >

<input type="button" value=" 등록 하기 " class="btn1" onclick="sendGuest();"/>

</td>

</tr>

 

</table>

<div id="listGuest"></div>

</center>

</div>


=================================================================================================================================================

list.jsp


<%@ page  contentType="text/html; charset=UTF-8"%>

<%@page trimDirectiveWhitespaces="true"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%String cp = request.getContextPath();%>


<table  width="600">

<c:forEach var="dto" items="${lists }">

<tr height="3"><td colspan="2" bgcolor="#dbdbdb"></td></tr>

<tr height="25">

<td align="left">작성자 | ${dto.name }</td>

<td align="right">${dto.created } | <a onclick="deleteGuest('${dto.num}',${pageNo }');">삭제</a></td>

</tr>

<tr height="1"><td colspan="2" bgcolor="#dbdbdb"></td></tr>

<tr height="40">

<td valign="top" colspan="2" align="left">${dto.content }</td>

</tr>

</c:forEach>

<tr height="3"><td colspan="2" bgcolor="#dbdbdb"></td></tr>

<tr height="25">

<td align="center" colspan="2">

<c:if test="${dataCount==0 }">

등록된 게시물이없습니다.

</c:if>

   <c:if test="${dataCount!=0}">

      ${pageIndexList}

      </c:if>

      </td>

      </tr>

</table>


=================================================================================================================================================

=================================================================================================================================================

xguest.jsp


<%@ page  contentType="text/html; charset=UTF-8"%>

<%@page trimDirectiveWhitespaces="true"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%String cp = request.getContextPath();%>

<style type="text/css">

*{margin: 0px; padding: 0px;}

body {font-size: 9pt; font-family: 돋움;}

td {font-size: 9pt;}

a{color: #000000;text-decoration: none;}

a:active, a:hover {text-decoration: underline;color: tomato;}

.boxTF { border:1px solid; height:15px; margin-top:3px; padding:2px 2px 2px 2px; border-color:#666666; background-color:#ffffff; font-family:"굴림"; font-size:9pt; }

.selectFiled {border:1px solid; border-color:#666666; background-color:#ffffff; font-family:굴림; font-size:9pt;}

.btn1 {font-size: 9pt; color:rgb(0,0,0); background-color:rgb(235,235,235); line-height:16px; padding:1px 3px 1px 3px;}


</style>


<script type="text/javascript">


/*

 * xml을 이용한 ajax 

 */


$(function(){ //$(function(){}은 jsp실행과 동시에 실행됨

listPage(1);

});


function listPage(page){

var url="<%=cp%>/xguest/list.action";

$.get(url,{pageNo:page, dumi:new Date()}, function(args){

printGuest(args);

},"xml");

}


function sendGuest(){

var name=$("#name").val();

var content=$("#content").val();

name=$.trim(name);

content=$.trim(content);

if(!name){

alert("이름을 입력하세요");

$("#name").focus();

return;

}

if(!content){

alert("내용을 입력하세요");

$("#content").focus();

retrun;

}

var url="<%=cp%>/xguest/created.action";

var params="name="+name+"&content="+content;

$.ajax({

type:"post"

,url:url

,data:params

,dataType:"xml"

,success:function(args){

printGuest(args);

}

,error:function(e){

alert(e.resposeText);

}

});

$("#name").val("");

$("#content").val("");

}


function printGuest(args){

var s="";

var dataCount=$(args).find("dataCount").text();

var pageNo=$(args).find("pageNo").text();

var pageIndexList=$(args).find("pageIndexList").text();


s="<table width='600'>";

$(args).find("record").each(function(){ // 향상된 for문장과 유사한 기능을 하는 each()

var num=$(this).attr("num");

//값(텍스트 가져오기)

var name=$(this).find("name").text();

var content=$(this).find("content").text();

var created=$(this).find("created").text();

s+="<tr height='3'><td colspan='2' bgcolor='#dbdbdb'></td></tr>";

s+="<tr height='25'>";

s+="<td align='left'>작성자 |"+name+"</td>";

s+="<td align='right'>"+created+" | <a onclick='deleteGuest(\""+num+"\",\""+pageNo+"\")'>삭제</a></td>";

s+="</tr>";

s+="<tr height='3'><td colspan='2' bgcolor='#dbdbdb'></td></tr>";

s+="<tr height='40'>";

s+="<td valign='top' colspan='2' align='left' style='padding-left: 10px'>"+content+"</td></tr>";

s+="</tr>";

});

s+="<tr height='3'><td colspan='2' bgcolor='#dbdbdb'></td></tr>";

s+="<tr height='25'>";

s+="<td valign='center' colspan='2'>";

if(dataCount==0)

s+="등록된 게시물이 없습니다.";

else

s+=pageIndexList;

s+="</td></tr>";

s+="</table>";

$("#listGuest").html(s);

listGuest.innerHTML=s;

}


</script>



<div class="bodyFrame1">

<center>

<br/><br/>

<table width="600" border="2" bordercolor="#d6d4d6">

<tr height="30">

<td align="center">방명록</td>

</tr>

</table>

<br/>

<table width="600" border="0" cellpadding="0" cellspacing="0">

<tr height="3">

<td colspan="2" bgcolor="#d6d4d6"></td>

</tr>

<tr hight="25">

<td width="80" bgcolor="#eeeeee" align="center">이름</td>

<td widht="520" align="left" style="padding-left: 5px">

<input tpe="text" id="name" size="35" class="boxTF"/>

</td>

</tr>

<tr hight="1"><td colspan="2" bgcolor="#d6d4d6"></td>

<tr hight="25">

<td width="80" bgcolor="#eeeeee" align="center">내용</td>

<td widht="520" align="left" style="padding-left: 5px">

<textarea rows="3" cols="80" id="content" class="boxTF" style="height:50px"></textarea>

</td>

</tr>

<tr height="3">

<td colspan="2" bgcolor="#d6d4d6"></td>

</tr>

<tr hight="30">

<td colspan="2" align="right" >

<input type="button" value=" 등록 하기 " class="btn1" onclick="sendGuest();"/>

</td>

</tr>

 

</table>

<div id="listGuest"></div>

</center>

</div>

=================================================================================================================================================

list.jsp


<%@ page  contentType="text/xml; charset=UTF-8"%>

<%@page trimDirectiveWhitespaces="true"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%String cp = request.getContextPath();%>


<root>

<dataCount>${dataCount}</dataCount>

<pageIndexList><![CDATA[${pageIndexList}]]></pageIndexList>

<pageNo>${pageNo }</pageNo>

<c:forEach var="dto" items="${lists }">

<record num="${dto.num }">

<name>${dto.name}</name>

<content><![CDATA[${dto.content}]]></content>

<created>${dto.created}</created>

</record>

</c:forEach>

</root>

=================================================================================================================================================