7일차 Effects

2012. 5. 8. 18:24

01.html 02.html 03.html 04.html 05.html 06.html

 

 

Effects img 보이기 감추기

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
      $(document).ready(function(){
        $("div").css({border:"1px solid black"}).attr("align","center");
       
        $("input#imgShow1").click(function(e){
           
            $("img").show();
        });
        $("input#imgShow2").click(function(e){
            //$("img").show(3000); // 시간은 밀리세컨드(1/1000초 단위)
            // 숫자 대신 "slow","normal","fast"를 사용 할수 있다.
            //slow => 600 // normal=> 400 , fast=> 200이다.
            $("img:not(animated)").show("slow");
           
        });
        $("input#imgShow3").click(function(e){
            $("img").show(1000,function(){
                alert("보이기 작업이 모두 끝났습니다.")
            });
        });
        $("input#imgHide1").click(function(e){
            $("img").hide();
        });
        $("input#imgHide2").click(function(e){
            //$("img").hide(3000);
            $("img:not(:animated)").hide(300);
        });
        $("input#imgHide3").click(function(e){
            $("img").hide(1000,function(){
                alert("감추기 작업이 모두 끝났습니다.");
            });
        });
        $("input#imgToggle").click(function(e){
            //$("img").toggle();
            //$("img").toggle(1000);
            $("img").toggle(1000);
           
           
           
        });
    });
  </script>
</head>
<body>
    <input type="button" id="imgShow1" value="이미지보이기"/>
    <input type="button" id="imgShow2" value="천천히보이기"/>
    <input type="button" id="imgShow3" value="보이기후 처리"/><br>
   
    <input type="button" id="imgHide1" value="이미지감추기"/>
    <input type="button" id="imgHide2" value="천천히감추기"/>
    <input type="button" id="imgHide3" value="감추기후 처리"/><br>
   
    <input type="button" id="imgToggle" value="보이기<->감추기"/>
   
    <div><img src="./image/a1SA.jpg" style="display:none;" alt="걸"></div>
</body>
</html>

 

Fade 효과  // img 의 불투명도 조정

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>img의 불투명도에 효과를 주어 사라지거나 나타나게 한다. </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
      $(document).ready(function(){
        $("div").css({border:"1px solid black"}).attr("align","center");
       
        $("input#imgFadeIn").click(function(e){
           
            //$("img").fadeIn(2000);
            $("img").fadeIn(2000,function(){
                alert("인 작업 종료")
            });
        });
        $("input#imgFadeOut").click(function(e){
           
            //$("img").fadeOut(2000);
            $("img").fadeOut(2000,function(){
                alert("아웃 작업 종료")
            });
        });
        $("img").mouseover(function(e){
            $(this).fadeTo(1000,0.2);
        });
        $("img").mouseout(function(e){
           
            $(this).fadeTo(1000,1);
        });

    });
  </script>
</head>
<body>
    <input type="button" id="imgFadeIn" value="이미지 FadeIn"/>

    <input type="button" id="imgFadeOut" value="이미지 FadeOut"/>
   
   
    <div><img src="./image/a1SA.jpg" style="display:none;" alt="걸"></div>
</body>
</html>

 

sliding 효과 // 일명 커텐 효과

 

slideDown // 보여주는것 slideUp  사라 지는것

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>img 커텐 효과 </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
      $(document).ready(function(){
        $("div").css({width:200,height:200,border:"1px solid black"})
       
        $("input#imgSlideDown1").click(function(e){
           
            $("div").attr("align","center");
            $("img").slideDown(2000);

        });
        $("input#imgSlideDown2").click(function(e){
           
            $("div").attr("align","right");
            $("img").slideDown(2000);

        });
        $("input#imgSlideDown3").click(function(e){
           
            $("div").attr("align","left");
            $("img").slideDown(2000);

        });
        $("input#imgSlideUp1").click(function(e){
           
            $("div").attr("align","center");
            $("img").slideUp(2000);

        });
        $("input#imgSlideUp2").click(function(e){
           
            $("div").attr("align","right");
            $("img").slideUp(2000);

        });
        $("input#imgSlideUp3").click(function(e){
           
            $("div").attr("align","left");
            $("img").slideUp(2000);

        });
        $("input#imgSlideToggle").click(function(e){
           
            $("div").attr("align","center");
            $("img").slideToggle(2000);

        });
    });
  </script>
</head>
<body>
    <input type="button" id="imgSlideDown1" value="이미지 SlideDown(가운데정렬)"/>
    <input type="button" id="imgSlideDown2" value="이미지 SlideDown(오른쪽정렬)"/>
    <input type="button" id="imgSlideDown3" value="이미지 SlideDown(왼쪽 정렬)"/>
    <input type="button" id="imgSlideUp1" value="이미지 SlideUp(가운데정렬)"/>
    <input type="button" id="imgSlideUp2" value="이미지 SlideUp(오른쪽정렬)"/>
    <input type="button" id="imgSlideUp3" value="이미지 SlideUp(왼쪽 정렬)"/>
    <input type="button" id="imgSlideToggle" value="이미지 SlideToggle(가운데정렬)"/>

   
    <div><img src="./image/203785_1333538468_7QtpDvwsT2FhlVyJ.gif" style="display:none;" alt="걸"></div>
</body>
</html>

 

사용자효과 ease효과  http://jqueryeasing.com/

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>사용자 정의 효과 </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript" src="./js/jquery.easing.1.3.js"></script>
  <script type="text/javascript">
      $(function(){
        $("div").css({width:330,height:330,border:"1px solid black"})
       
        $("#imgAni1").click(function(){
            //$("img").animate({width:"100%",height:"100%",opacity:0.4},2000);
            $("img").animate({width:"+=200",height:"+=200",opacity:0.4},2000);
            // +=현재값 보다 width 가 200만큼 증가 한다.
            // -=현재값 보다 width 가 200만큼 감소 한다.
        });
        $("#imgAni2").click(function(){
            $("img").animate({marginLeft:200},{duration:2000 ,easing:"easeOutBounce"});
            // 이클립스 IE 실행 안됨.
        });
        $("#imgAni3").click(function(){
            $("img").animate({marginLeft:100},1000);
            //$("img").animate({marginTop:100},1000);
            //본래는 오른쪽으로 밑으로 가야하나 밑에 것과 같이 사용 하면
            // 대각선 으로 움직임. queue 를 false 주었을때 나오는 효과
            $("img").animate({marginTop:100},{duration:1000,queue:false});
        });

    });
  </script>
</head>
<body>
    <input type="button" id="imgAni1" value="이미지 Animate1"/>
    <input type="button" id="imgAni2" value="이미지 Animate2"/>
    <input type="button" id="imgAni3" value="이미지 Animate3"/>

   
    <div><img src="./image/203785_1333538468_7QtpDvwsT2FhlVyJ.gif"  alt="걸"></div>
</body>
</html>

 

 추가

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>사용자 정의 효과 </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript" src="./js/jquery.easing.1.3.js"></script>
  <script type="text/javascript">
      $(function(){

        $("#aniTest").click(function(){
            runAni();
//            $("div").show("slow");
//            $("div").animate({left:"+=200"},2000);
//            $("div").queue(function(){
//                $(this).addClass("newcolor");
//                $(this).dequeue();
//            });
//           
//            $("div").animate({left:"-=200"},2000);
//            $("div").queue(function(){
//                $(this).removeClass("newcolor");
//                $(this).dequeue();
//            });
//           
//            $("div").slideUp();
//           
        });
            function runAni(){
           
            $("div").show("slow");
            $("div").animate({left:"+=200"},2000);
            $("div").queue(function(){
                $(this).addClass("newcolor");
                $(this).dequeue();
            });
           
            $("div").animate({left:"-=200"},2000);
            $("div").queue(function(){
                $(this).removeClass("newcolor");
                $(this).dequeue();
            });
           
            $("div").slideUp("normal",runAni);
           
        };
       
       
    });
  </script>
<style type="text/css">
    div{position:absolute; width:40px; height:40px; left:0px; top:50px; display:none;  background-color:#66cccc;}
    div.newcolor{background-color:blue;}
</style>
</head>
<body>
    <input type="button" id="aniTest" value="실행" /><br><br>
   
    <div></div>
</body>
</html>

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>사용자 정의 효과 </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript" src="./js/jquery.easing.1.3.js"></script>
  <script type="text/javascript">
      $(function(){
        $("#aniTest").click(function(){
            $(".block:first").animate({left:100},
            {duration:1000,
             step: function(now,fx){
                 $("#msg").append(now+"<br>");
                $(".block:gt(0)").css("left",now);
             }    });
        });
    });
  </script>
<style type="text/css">
    div.block{position:relative; width:40px; height:40px; margin:5px; float:left; background-color:#66cccc;}
</style>
</head>
<body>
    <input type="button" id="aniTest" value="실행" /><br><br>
   
    <div class="block"></div><div class="block"></div>
    <div class="block"></div><div class="block"></div>
    <div class="block"></div><div class="block"></div>
   
    <br><br>
   
    <span id="msg"></span>

</body>
</html>

 

 

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

9일차 XML문서  (0) 2012.05.08
8일차 사용자정의객체&JSON표기법  (0) 2012.05.08
6일차 Utilities  (0) 2012.05.08
5일차 찾기관련()eq()..  (0) 2012.05.08
4일차 Methods  (0) 2012.05.08
Posted by 사라링

6일차 Utilities

2012. 5. 8. 18:24

jQuery Utilities

01.html 02.html 03.html

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jQuery Utilities</title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
      $(function(){
        var result ="";
        var testArr = [100,200,300,400];
        var testObj = {"name":"홍길동","addr":"대전","tel":"042-222-8202"};
        var str="";
        $.each(testArr,function(i,v){
            str +=i+" : "+v+"\n";
        });
        alert(str);
        str="";
        $.each(testObj,function(i,v){
            str +=i+" : "+v+"\n";
        });
        alert(str);
       
        jQuery.each(jQuery.browser,function(i,val){
            result +=i+" : "+val +"\n";
        });
        alert(result);
        if($.browser.msie){
            alert("IE브라우저");
        }else {
            alert("다른 웹 브라우저");
        }
       
       
       
        var s = " Abc Def Fed Cba ";
        alert("["+s+"]");
        alert(s.length);
        alert("["+$.trim(s)+"]");
        alert(jQuery.trim(s).length);
       
        var empty={}
        var defaults = {validate:false,limit:5, name : "foo"};
        var options1 =["one","two","three","four","five"];
        var options2 =["six","seven","eight","nine","ten"];
        var settings=$.extend(empty,defaults,options1,options2);
        var result2="";
        jQuery.each(settings,function(i,val){
                result2 +="[name: "+i+"]"+"[value : "+val+"]\n";
        });
        alert(result2);
        $(document).ready(function(){
            var arr1 = [0,1,2,3,4,5,6,7,8,9];
            var arr2 = jQuery.grep(arr1,function(val,i){
                            // 주의점 ./ grep 과 each 인 경우 i 와 value 순서가 다르다. value 가 먼저.
                    return(val!=5&&val>3);
                    // 4 6 7 8 9 가 arr2 에 들어 간다
            });
            alert("변경전: "+arr1.join(",")+"\n"+"변경후: "+arr2.join(","));
            var arr3 =jQuery.grep(arr1,function(n,i){
                return(n!=5&&i>3);
                ///0,1,2,3,5 가 arr3에 입력
               
            },true);// 마지막에 true 가 설정 되면 false를 반환 하는 자료만 취합 한다.
            alert("변경전: "+arr1.join(",")+"\n"+"변경후: "+arr3.join(","));
           
            var arr = jQuery.makeArray($("div"));
            // div 를 배열로 만들어 arr로 넣는다.
            var result3="";
            jQuery.each(arr,function(i){
                result3 += "index["+i+"] element["+$(this).text()+"]\n";
            });
            alert(result3);
           
            result3="";
            var arr =["성춘향",40,"일지매",55,"홍길동",40];
            result3="홍길동 위치"+jQuery.inArray("홍길동",arr)+"\n";
            // inArray <== 대상 배열에서 "홍길동"의 index 값을 반환 한다 .
            result3 +="40위치 : " +jQuery.inArray(40,arr)
            alert(result3);
        });
    });
  </script>
</head>
<body>
<body>
    <div>계룡산</div>
    <div>백두산</div>
    <div>한라산</div>
    <div>지리산</div>
    <p>태백산</p>
    <p><div>소백산</div></p>   
</body>
   
   

</body>
</html>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    var testNull =null;
    var testVal="값이 있는 변수";
    function testFunc(){
        alert("함수입니다.");
    }
    $(document).ready(function(){
        var result="";
        var arr=jQuery.unique(jQuery.makeArray($("div")).concat($("div").get()));
        jQuery.each(jQuery.unique(arr.concat(arr)),function(i){
            result +="[index:"+i+"][value:" +$(this).text()+"]\n";
        });
        alert(result);
        var objs=[testNull,testVal,testFunc];
        result="";
        jQuery.each(objs,function(i){
            result +="[value:"+objs[i]+"]"+"["+$.isFunction(objs[i])+"]\n";
        });
        result="";
    });
   
   
</script>
</head>
<body>
    <div>하나</div>
    <div>둘</div>
    <div>셋</div>
    <div>넷</div>
</body>
</html>

 

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        var arr1 = ["a","b","c","d","e"];
        var arr2 = jQuery.map(arr1,function(n,i){
            return(n.toUpperCase());
        });
        alert("변경전 : "+arr1.join(",")+"\n"+   "변경후: "+arr2.join(","));
    });
</script>
</head>
<body>

</body>
</html>

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

8일차 사용자정의객체&JSON표기법  (0) 2012.05.08
7일차 Effects  (0) 2012.05.08
5일차 찾기관련()eq()..  (0) 2012.05.08
4일차 Methods  (0) 2012.05.08
3일차 export/change  (0) 2012.05.08
Posted by 사라링

5일차 찾기관련()eq()..

2012. 5. 8. 18:24

Traversing - 찾기 관련 메서드

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function(){
//        $("div:eq(1)")
//            .siblings().css("border","1px solid blue")
//            // div2번째의 형재들(자기 자신을뺀) 에게 적용
//            .end()
//            .next().text("third")
//            //div2번째의 다음번째div에 적용
//            .end()
//            .nextAll().css("background","yellow");
//            //2번째 이후에 나오는 모든 div에 적용
//           
//        $("div").find("p").css("color","blue")
//            .add("span").css("border","1px solid red");
//           
        // children() ==> 바로 아래의 자식 엘리먼트만 검색 한다.
        // contents() ==> 바로 아래의 모든 자식 요소들(문자데이터도 포함)을 검색한다.
//        var str="";
//        $("div:eq(0)").children().each(function(i,v){
//            str +=i + " : tagName = "+v.tagName + " ==> "+$(v).html()+"\n";
//        });
//        str="";

//        $("div:eq(0)").contents().each(function(i,v){
//            if(typeof(v.tagName)==undefined){
//                str += i+" : "+$(v).text()+"\n";
//            }else {
//            str +=i + " : tagName = "+v.tagName + " ==> "+$(v).html()+"\n";
//            }
//        });
//        alert(str);
//        $("p:eq(0)").parent().css("border","2px solid red");
       
//        var str="";
//        $("p:eq(0)").parent().each(function(){
//            str+=this.tagName+"\n";
//        });
//        alert(str);
//        $("div:eq(3)").prevAll().css("backgroundColor","yellow");
        $("div:eq(3)").prev().css("backgroundColor","yellow");
       
    });   
   
</script>
<style type="text/css">

    div{width:100px; height:100px; margin:10px; float:left;
    border:1px solid silver; padding:5px;}
   
</style>
</head>
<body>
    <div>A<p>p a</p><span>span a<span>span a a</span></span></div>
    <div>B<p>p b</p></div>
    <div>C<p>p c</p></div>
    <div>D<br><span>span d</span></div>
    <div>E<br><span>span e</span></div>
</body>
</html>

 

CSS 관련 메서드

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>속성 설정 하기(추가 삽입)</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function(){
        alert($("img").eq(0).attr("src"));
        $("#photos img")
        .attr({"border":"1px","height":"100"})
        .attr("title",function(i){
            return(i+1)+"번째 이미지 입니다.";
        });
       
        //alert($("body").html());
        $("#photos img").eq(-1).removeAttr("title");
            // 마지막 번째 의 title 속성을 제거
    });
   
   
</script>
</head>
<body>
    <div id="photos">
        <img src="image/한글.jpg"/>
        <img src="image/2.jpg"/>
        <img src="image/3GFST.jpg"/>
        <img src="image/8f62be078e54cf04d3b918de815939d3.jpg"/>
        <img src="image/a1SA.jpg"/>
       
       
       
       
    </div>
   
   

</body>
</html>

이벤트(Event) 관련 메서드

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>이벤트 관련 메서드</title>
</head>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function(){
        $("#myBtn").bind("click",{name:"홍길동",gender:"남자"},
        //이벤트를 처리하는 함수의 파라미터 변수는 이벤트 객체 변수이다.
        function(e){
            alert("제 이름은 "+e.data.name+"이고,"+e.data.gender+"입니다.");
        });
        $("#myMT").one("click",function(){
            alert("이미지는 클릭 하지 마세요. 두번 말하지 않습니다.");
        });
        $("#testTrgg").bind("myTriggerOne",function(){
            $(this).attr("src","./image/2.jpg");
        });
        $("#testTrgg").bind("myTriggerTwo",function(){
            $(this).attr("src","./image/3GFST.jpg");
        });
        $("#trggBtn").toggle(
            function(){$("#testTrgg").trigger("myTriggerOne")},
            function(){$("#testTrgg").trigger("myTriggerTwo")}
        );
        $("#testHover").hover(
            function(){$(this).css("border","2px solid blue")},
            function(){$(this).css("border","0px")}
       
        );
    });
   
</script>
<body>
<div>
    <span id="testHover"><img id="myMT" src="./image/a1SA.jpg"></span>
    <img id="testTrgg" src="./image/8f62be078e54cf04d3b918de815939d3.jpg"/>
</div>
<input type="button" id="myBtn" value="내 소개!!">
<input type="button" id="trggBtn" value="Trigger Test">



</body>
</html>

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

7일차 Effects  (0) 2012.05.08
6일차 Utilities  (0) 2012.05.08
4일차 Methods  (0) 2012.05.08
3일차 export/change  (0) 2012.05.08
2일차 Selectors  (0) 2012.05.08
Posted by 사라링

4일차 Methods

2012. 5. 8. 18:24

jQuery Methods

 

추가 메서드

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Document</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>

    <script type="text/javascript">
        $(function(){
/*
            alert ("변경전\n\n" + $("#test1").html() );

            $("#test1").html($("#test1").html() + "<span>새롭게 추가되는 내용입니다.</span>");

            alert ("변경후\n\n" + $("#test1").html() );
*/           
/*           
            alert ("변경전\n\n" + $("#test1").text() );

            $("#test1").text($("#test1").html() + "<span>새롭게 추가되는 내용입니다.</span>");
*/
        $("#btn").click( function(){

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

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

        });
       
        //$("#test1").append("<font color='red'>새로운 내용(append)</font>");
        //$("<font color='red'>새로운 내용(appendTo)</font>").appendTo("#test2");

        //$("#test1").prepend("<font color='red'>새로운 내용(prepend)</font>");
        //$("<font color='red'>새로운 내용(prependTo)</font>").prependTo("#test2");
       
        // 기존의 문서 내용을 append 또는 prepend 하면 그 내용이 이동한다.
        //$("#test1").append( $("#test3") );
        //$("#test3").appendTo("#test2");

        //$("#test1").prepend( $("#test3") );
        //$("#test3").prependTo("#test2");

        //alert( $("body").html() );

        //$("#test1").after("<font color='red'>새로운 내용(after)</font>");
        //$("<font color='red'>새로운 내용(insertAfter)</font>").insertAfter("#test2");

        //$("#test1").before("<font color='red'>새로운 내용(before)</font>");
        //$("<font color='red'>새로운 내용(insertBefore)</font>").insertBefore("#test2");   
       
        //$("#test1").after( $("#test3") );
        //$("#test1").before( $("#test3") );

        //$("h2").wrap("<font color='green'></font>");
        //$("h2").wrap("<font color='green'>font태그</font>");
       
        //$("h2").wrapAll("<font color='green'></font>");
        $("h2").wrapAll("<font color='green'>font태그</font>");

        alert( $("body").html() );

    });

    </script>
    <style type="text/css">
        div { border: 1px solid red; margin:5px;}
    </style>
 </head>

 <body>
    <input type="text" id="name"><input type="button" id="btn" value="확인">
    <br><br>

    <h2>jQuery 메소드 예제</h2>

    <div id="test1">
        <span>첫째...</span><br>
        둘째...
        <p>셋째...</p>
    </div>

    <div id="test2">
        <span>첫째...</span><br>
        둘째...
        <p>셋째...</p>
    </div>
   
    <span id="test3">
        <h2>안녕하세요1</h2>
        <h2>안녕하세요2</h2>
        <h2>안녕하세요3</h2>
        <h2>안녕하세요4</h2>
    </span>
 </body>
</html>

삭제 메소드

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Document</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function() {
        $(".annotation").each(function(i){
            var no =i+1;
            $(this).after("<sub>"+no+"</sub>");
        });
        var rmBtn =null;
        $("button").click(function(){
            alert($(this).val());
//            rmBtn=$(this).remove();
            rmBtn=$(this).detach();
            $("#detachTest").append(rmBtn);
        });
        var $prev=$("#prevBtn").clone();
        // 걍 클론 은 기능은 복사 안함
        var $next=$("#nextBtn").clone(true);
        // 클론에 true까지 포함 => 기능까지 복사
       
        $("div#bottomDiv").prepend($prev);
        $("div#bottomDiv").append($next);

    });
</script>
</head>


<body>
    <button id="prevBtn">이전 페이지로</button>
    <button id="nextBtn">다음 페이지로</button>
    <h3>jQuery</h3>
    <div><b>jQuery</b>는 가볍고 빠르며,간결한<span class="annotation">오픈소스</span>
    스크립트라이브러리 입니다. <br>이를 이용하면 Rich 웹 UI를 개발 하는데 도움이 되는 다양한
    기능들<br>즉,HTML 문서 <span class="annotation">트래버스</span>,
    이벤트처리,애니메이션,<span class="annotation">Ajax</span>상호작용등을 지원하여
    <br>빠르고 견고하게 리치 웹 애플리케이션 개발을 할수 있도록 지원 합니다.
    </div><br>
    <div id="bottomDiv"><span>기준</span></div>
    <div id="detachTest">detach연습</div>
</body>
</html>
.

횡단*(Traversing) 메서드

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function(){
        $("div").eq(0).addClass("lightblue");
        $("div").filter(":odd")
            .eq(0).css("background","orange")
            .end()    // 방금 실행한 집합 이전으로 되돌린다.
            .eq(1).css("background","blue")
            .end()
            .css("color","red");
        var $myDiv=$("div").eq(5);
        if($myDiv.is("div"))$myDiv.css("border","4px solid yellow");
        if($myDiv.is(".orange, .blue, .lightblue"))$myDiv.text("칼라");
   
        $("div").each(function(){
            $(this).text($(this).text().toUpperCase());
        });
       
    });

</script>
<style>
    div{width:60px; height:60px; margin:10px; float:left; border:2px solid blue;}
    .blue {background:blue;}
    .lightblue {background:lightblue;}
    .orange {background:orange;}
</style>

</head>
<body>
    <div>a</div>
    <div>b</div>
    <div>c</div>
    <div>d</div>
    <div>e</div>
    <div class="orange">f</div>
    <div>g</div>
</body>
</html>

 

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

6일차 Utilities  (0) 2012.05.08
5일차 찾기관련()eq()..  (0) 2012.05.08
3일차 export/change  (0) 2012.05.08
2일차 Selectors  (0) 2012.05.08
1일차 get/function  (0) 2012.05.08
Posted by 사라링

3일차 export/change

2012. 5. 8. 18:24

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
 $(function(){
  $("span:contains('JQuery')").css("border","1px sllid blue");//JQuery 를 포함 하는span 테그를 변경 . 
  $("span:not(:contains('JQuery'))").css("border","1px solid red");
 });// JQuery를 포함 하지 않는 span 테그를 변경 컨텐츠 를 변경
  </script>

  <style type="text/css">
 *{font-size:12px;font-family:돋음}
  </style>
 </head>

 <body>
  <div>Hello,<span>Enjoy developing!</span></div>
  <p>It's another sector!<span>Thanks, JQuery!</span></p>
  <div class="myClsaa">JQuery!</div>
  <span class="notMyclass">It's so easy!</span>
 </body>
</html>

 

//

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
 $(function(){
  $("td:empty").text("새로운값").css("background","yellow");
 });     // td 중 비어있는 것을 찾아 새로운값및 백그라운드 색상을 변경.
/*  $(selector).text(); // selector 의 내용중 문자열만 추출한다.
 $(selector).html(); // selector 의 내용중 html코드로 추출한다.
 $(selector).text("내용"); // selector자리에 '내용'을 문자열 형태로 넣어 준다.
                             //내용에 html코드가 포함되어도 이 html 코드를 해석하지 않고 문자열 형태로 그대로 나타낸다.
 $(selector).html("내용"); // selector 자리에 '내용'을 html 형식으로 넣어 준다.
  */
  </script>
  <style type="text/css">
 *{font-size:12px; font-family:돋음}
  </style>
 </head>

 <body>
  <table border="1">
  <tr><td>TD 1-1</td><td></td></tr>
  <tr><td>TD 2-1</td><td></td></tr>
  <tr><td></td><td>TD 3-2</td></tr>
 </body>
</html>

 

 

 

 

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
 $(function(){
  $("div:has(span)").css("border","1px solid blue");
 });
     // span 테그를 포함 하는 div 테그를 찾아서 변경 하라.
  </script>
  <style type="text/css">
 *{font-size:12px; font-family:돋음}
  </style>
 </head>

 <body>
  <div>
 Hello,<span>Enjoy developing!</span><div class="myClass">JQuery!</div>
  </div>
  <p>It's another sector!<span>Thanks,JQuery!</span></p>
  <span class="notMyClass">It's so easy!</span>
 </body>
</html>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
    $("td:nth-child(3)").css("backgroundColor","yellow");
    //각 td 그룹을 따로 나눈후 3번째 것을 찾아 변경
    $("td:nth-child(odd)").css("backgroundColor","cyan");
    // 그룹 나눈것중 홀수 번째
    $("td:nth-child(even))").css("backgroundColor","red");
    //그룹 나눈것중 짝수 번째
    $("td:nth-child(3n+1)").css("backgroundColor","pink");
    // '3n+1'와 같은 식의 n자리에 0,1,2,3,.. 을 차례로 대입 하여 계산한 결과의 위치를 선택 한다.
    $("td:first-child").css("backgroundColor","yellow");
    //각 그룹별로 첫번째 것을 찾아 적용 한다.
    $("td:last-child").css("backgroundColor","cyon");
    //각 그룹별로 마지막 것을 찾아 적용 한다.
    $("td:only-child").css("backgroundColor","green");
    // 자신이 부모 테그의 유일한 자식일때 적용 .그룹 적용된것에 하나 뿐일때 를 말하는것임
   
});
</script>

</head>
<body>
<table border="1">
<tr><td>TD #1 </td> <td>TD#2</td><td>TD#3</td><td>TD #4</td></tr>
<tr><td>TD #5 </td> <td>TD#6</td><td>TD#7</td><td>TD #8</td></tr>
<tr><td>TD #9 </td> <td>TD#10</td><td>TD#11</td><td>TD #12</td></tr>
</table>
<hr>
<table border="1">
<tr><td>TD #1 </td> <td>TD#2</td><td>TD#3</td><td>TD #4</td>
<td>TD #5 </td> <td>TD#6</td><td>TD#7</td><td>TD #8</td>
<td>TD #9 </td> <td>TD#10</td><td>TD#11</td><td>TD #12</td></tr>
</table>
<hr>
<table border="1">
<tr><td>TD#1</td><td>TD#2</td><td>TD#3</td></tr>
<tr><td colspan="3">TD#4</td></tr>
<tr><td colspan="2">TD#5</td><td>TD #6</td></tr>
</table>
</body>
</html>

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Document</title>
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function() {
        function testChecked() {
            var result = "";
            $(":checkbox:checked").each(function() {
                if (result != "")
                    result += ",";
                result += $(this).val();
                $(this).css("border", "3px solid #6600ff ");
            });
            $(":checkbox:not(:checked)").each(function() {
                $(this).css("border", "0px")
            });
            alert(result == "" ? "취미가 없군요!!" : "취미는 " + result + "이군요!!");
        }// testChecked 끝
        testChecked();
        $(":checkbox").click(testChecked);
        // checkbox를 클릭 하면 'testchecked' 함수를 호출 한다.

        function testSelected() {
            var result = "봄소식 전령사들\n\n";
            $("select[name='spring'] option:selected").each(function() {
                result += $(this).val() + "\n";
                //$(this).css("border", "5px #009999 solid") + "\n";
            });
            alert(result);
        }
        testSelected();
        //$("select[name='spring']").change(testSelected);
        //'select'객체에서 'change'이벤트가 발생 하면 'testSelected'함수를 호출 한다.
        $('#viewSelect').click(testSelected);
        //
    });
</script>
</head>

<body>
    <form>
        취미 : <input type="checkbox" name="hobby" value="여행" checked>여행
        <input type="checkbox" name="hobby" value="장기" />장기 <input
            type="checkbox" name="hobby" value="바둑" />바둑 <input type="checkbox"
            name="hobby" value="독서" checked>독서 <input type="checkbox"
            name="hobby" value="낚시" />낚시<br> 봄소식 : <select name="spring"
            multiple="multiple" size="6">
            <option>개나리</option>
            <option selected>진달래</option>
            <option>민들레</option>
            <option selected>벚꽃</option>
            <option>목련</option>
            <option>철쭉</option>
        </select><br>
        <input type="button" id="viewSelect" value="봄소식보기"/>
    </form>
</body>
</html>

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

5일차 찾기관련()eq()..  (0) 2012.05.08
4일차 Methods  (0) 2012.05.08
2일차 Selectors  (0) 2012.05.08
1일차 get/function  (0) 2012.05.08
16일차 우편번호검색(json)  (0) 2012.05.08
Posted by 사라링

2일차 Selectors

2012. 5. 8. 18:24

Jquey Selectors


$(function(){
//    $("#list").css("border","1px solid silver");
//    $("p").css("border","2px solid red");
//    $("span").css("background-color","pink").css("color","#009999");
//    $("span a").css("text-decoration","overline").css("color","#000000");
//    $("span.detail").css("color","blue");
//    $("div~b").css("background","green");
    $("div>b").css("border","1px solid red");
//    $("div+b").css("border","2px solid blue");

});


    $(document).ready(function() {
        $("img[alt]").css("border", "1px solid red");
        // img 속성에 alt가 있는것 .
        $("input[type='button']").css("background-color", "yellow");
        // 인풋 타입이 버튼인것
        $("a[href^='mailto:']").css("background-color", "lightblue");
        // a테그 중에 href가 mailto: 로 시작 하는것
        $("img[id!='hibiscus']", $("div")).css("border", "3px solid blue");
        //img id 속성이 hibiscus가 아닌것 $("div"), 안에서 img 테그를 찾아서 적용 하라 
        $("img[src$='jpg']").css("border", "2px solid #00ffff");
        //img 의 src 속성이 .jpg로 끝나는 것($=) 
        $("a[href*='power2c']").css("text-decoration", "none");
        //a 의 href 속성이 포함(*=) 되어 있는것 power2c 가 ..
        $("img[id|='little']").css("border", "2px solid green");
        //img id 값이 little 이거나 little-xxx 인것. 반드시 '-' 가 있어야 한다.
        $("img[title~='named']").css("border", "2px solid pink");
        // img의 title 에 named 라는 단어가 있는것 포함이 아니라 하나의 단어로 구성 되어야 한다.
        //A puppy named Cozmo <== 는 적용 되나 A puppynamed Cozmo 는 적용 되지 않는다.
    });


 

 

 

 

 

 1. CSS셀렉터

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
//    $("#list").css("border","1px solid silver");
//    $("p").css("border","2px solid red");
//    $("span").css("background-color","pink").css("color","#009999");
//    $("span a").css("text-decoration","overline").css("color","#000000");
//    $("span.detail").css("color","blue");
//    $("div~b").css("background","green");
    $("div>b").css("border","1px solid red");
//    $("div+b").css("border","2px solid blue");

});
 
</script>
</head>
<body>
<div>
    <span>IT교육의 요람<a href="http://ddit.or.kr">(재)대덕인재 개발원</a>으로 오세요</span><br><br>
    <a href="mailto:power2c@ddit.or.kr">빠워에게 메일 보내기 </a>
    <p>
    RIA기술 : <input type="checkbox" name="ria" value="플렉스">플렉스
    <input type="checkbox" name="ria" value="실버라이트">실버라이트
    <input type="checkbox" name="ria" value="HTML5">HTML5
    성별<input type="radio" name="sex" value="여자">"여자"
    <input type="radio" name="sex" value="남자">"남자"
    <input type="button" value="클릭~~"><br>
    </p>
    <div id="list">selector의 종류 들입니다.</div>
   
    <b>엘리멘트 : </b><span class="detail"><b>태그명,ID 속성값,CLASS속성값이용</b></span><br>
    <b>속성 : </b><span class ="detail">각 요소에 설정된 속성명과 속성값 이용</span><br>
    <b>form : </b><span class = "detail">input,select,textarea등의 특성을 이용</span>
</div>

 

2.속성 관련 CSS셀렉터들

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("img[alt]").css("border", "1px solid red");
        // img 속성에 alt가 있는것 .
        $("input[type='button']").css("background-color", "yellow");
        // 인풋 타입이 버튼인것
        $("a[href^='mailto:']").css("background-color", "lightblue");
        // a테그 중에 href가 mailto: 로 시작 하는것
        $("img[id!='hibiscus']", $("div")).css("border", "3px solid blue");
        //img id 속성이 hibiscus가 아닌것 $("div"), 안에서 img 테그를 찾아서 적용 하라 
        $("img[src$='jpg']").css("border", "2px solid #00ffff");
        //img 의 src 속성이 .jpg로 끝나는 것($=) 
        $("a[href*='power2c']").css("text-decoration", "none");
        //a 의 href 속성이 포함(*=) 되어 있는것 power2c 가 ..
        $("img[id|='little']").css("border", "2px solid green");
        //img id 값이 little 이거나 little-xxx 인것. 반드시 '-' 가 있어야 한다.
        $("img[title~='named']").css("border", "2px solid pink");
        // img의 title 에 named 라는 단어가 있는것 포함이 아니라 하나의 단어로 구성 되어야 한다.
        //A puppy named Cozmo <== 는 적용 되나 A puppynamed Cozmo 는 적용 되지 않는다.
    });
</script>
<style type="text/css">
    *{font-size: 12px; font-family: 돋움}
</style>

</head>
<body>
<div>
        <a href="http://ddit.or.kr">(재)대덕인재 개발원</a><br><br>
    <a href="mailto:power2c@ddit.or.kr">빠워에게 메일 보내기 </a><br><br>
    <div>
        <img alt="Hibiscus" src="images/image.1.jpg" id="hibiscus"/>
        <img title="A dog nameed Little Bear" src="images/image.2.jpg" id="little-Bear"/>
        <img alt="Verbena" src="images/image.3.jpg" id="verbena"/>
        <img title="A puppy named Cozmo" src="images/image.4.jpg" id="cozmo"/>
        <img alt="Tiger Lily" src="images/image.5.jpg" id="tigerLily"/>
        <img title="coffeePot" src="images/image.6.jpg" id="little"/>
    </div>
    <div id = "someDiv">이곳은 ID속성이 <tt>someDiv</tt>인 &lt;div&gt;테그 입니다</div>
    <div title="myTitle"><span>Hello</span></div>
    <div title="myTitle"><span>Goodbye</span></div>
    <form onsubmit="return false;">
        <div>
            <label>Text:</label><input type="text" id="aTextFiled" name="someTextField"/>
        </div>
        <div>
            <label>Radio group:</label>
            <input type="radio" name="radioGroup" id="radioA" value="A">A
            <input type="radio" name="radioGroup" id="radioB" value="B">B
        </div>
        <div>
            <label>Checkboxes:</label>
            <input type="checkbox" name="checkboxes" id="checkbox1" value="1">1
            <input type="checkbox" name="checkboxes" id="checkbox2" value="2">2
        </div>
    <button type="submit" id="submitButton">Submit</button>
    <input type="button" value="클릭~~">
    </form>
</div>

3.Form 관련 셀렉터들

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $(":input").css("border", "2px solid red");
        // 모든 form 테그 적용 안에 적용
        $(":input:button").css("background-color", "yellow");
        // input 테그중 type 이 button 에 적용
        $(":button").css("background-color", "yellow");
        //input 테그중 type이 button 과 button 테그 에 모두 적용
        $(":submit").css("background-color", "pink");
        // 이하 같음 form 안에 type이 submit 인것에 모두 적용
        $(":reset").css("background-color", "yellow");
        $(":checkbox").css("border", "2px solid red");
        $(":radio").css("border", "2px solid red");
        $(":text").css("border", "2px solid red");
        $(":password").css("border", "2px solid red");
        $(":file").css("border", "2px solid red");
        $(":image").css("border", "2px solid red");
    });
</script>
<style type="text/css">
* {
    font-size: 12px;
    font-family: 돋움
}
</style>
</head>
<body>
    <form onsubmit="return false;">
        Text : <input type="text" /> <br /> Password : <input type="password" />
        <br />
        <br /> Radio : <input type="radio" name="radioGroup" id="radioA"
            value="A" />A <input type="radio" name="radioGroup" id="radioB"
            value="B" />B <br />
        <br /> CheckBox : <input type="checkbox" name="checkboxes"
            id="checkbox1" value="1">1 <input type="checkbox"
            name="checkboxes" id="checkbox2" value="2">2<br />
        <br /> Textarea : <br>
        <textarea rows="15" cols="50" id="myTextarea" id="myTextarea"></textarea>
        <br />
        <br /> Images : <input type="image" src="images/image.1.jpg"><br />
        <br /> File : <input type="file"><br />
        <br /> Buttons :
        <button type="submit" id="submitButton">Submit</button>
        <input type="button" value="일반버튼"> <input type="submit"
            value="전송버튼"> <input type="reset" value="초기화버튼">
    </form>
</body>

4.기본 필터

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function() {
        $("tr").css("text-align", "center");
        // 모든 tr 테그 안에 text를 정렬 하라. 가운데로.
        $(":header:eq(1)").css("font-weight", "bold").css("color", "blue");
        //header 테그 중(h1~h2~h3~ 등)에 2번째 것의 두깨를 bold 색깔을 블루로 변경 하라.
        $("tr:first").css("background", "silver");
        //tr 테그 중에 맨 처음 것의 배경색을 실버로
        $("tr:last").css("background", "yellow");
        //tr 테그 중에 맨 마지막 것의 배경색을 실버로
        $("tr:odd").css("background", "#efefef");
        // tr 테그중 홀수 번째 1.3.5 번째 (0부터 시작 0은 짝수)
        $("tr:even").css("background", "#3388cc");
        // tr 테그중 짝수  번째 0.2.4 번째 (0부터 시작 0은 짝수)
        $("tr:gt(4)").css("background", "silver");
        // tr 테그중 4번째 이전것 을 모두 적용
        $("tr:lt(4)").css("background", "silver");
        // tr 테그중 4번째 이후것 을 모두 적용
    });
</script>
<style type="text/css">
* {
    font-size: 12px;
    font-family: 돋움
}
.scoreTable {
    background: white;
    border-collapse: collapse
}
</style>

</head>
<body>
    <h1>수학 시험 점수1</h1>
    <h2>수학 시험 점수2</h2>
    <h3>수학 시험 점수3</h3>
    <table class="scoreTable" border="1" cellpadding="10">
        <tr>
            <td width="100">이름</td>
            <td width="100">점수</td>
        </tr>
        <tr>
            <td>홍길동</td>
            <td>80</td>
        </tr>
        <tr>
            <td>일지매</td>
            <td>98</td>
        </tr>
        <tr>
            <td>성춘향</td>
            <td>85</td>
        </tr>
        <tr>
            <td>이몽룡</td>
            <td>96</td>
        </tr>
        <tr>
            <td>강감찬</td>
            <td>88</td>
        </tr>
        <tr>
            <td>이순신</td>
            <td>90</td>
        </tr>
        <tr>
            <td>박문수</td>
            <td>92</td>
        </tr>
    </table>
</body>

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

4일차 Methods  (0) 2012.05.08
3일차 export/change  (0) 2012.05.08
1일차 get/function  (0) 2012.05.08
16일차 우편번호검색(json)  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
Posted by 사라링

1일차 get/function

2012. 5. 8. 18:24

JS 파일을 다운 받자.

http://jquery.com/  오른쪽 가운데에 에서 파일 두개를 받아 저장 하자.

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>   맨처음 받은 js 파일을 html 폴더에 js 폴더를 생성후에 옮긴후 src 로 연결 해주자.

 

명령어 모음


$(document).ready(function(){
    alert("이것은 $ 이용한 ready 이벤트 입니다. ");
});

$(function(){
    alert("ready이벤트의 축약형 입니다. ");
}); 

// 위 두개는 같은 것이다. 1번째 것을 축약 한것이 2번째 이다.

alert( $("body").html() );

 

$(function(){
    //alert($("p").get(1).innerHTML );
    //alert($($("p").get(1)).html() );
    //alert($($("p").get(1)).text() );
    alert($($("p")[1]).text() );

jQuery.noConflict();// 이 명령 이후에는 jQuery 대신 $ 를 사용 할수 없다.

  var $j = jQuery.noConflict();
    // jQuery 의 애칭인 $ 을 $j 로 변경 한것./ 제이쿼리의 애칭 사용을 금지 하고 제이쿼리객체를 돌려 준다.

    $j(function() {
        alert($j($j("p")[1]).text());
    });

 


 

기본 바디의 onload 명령어를 js 를 이용 하여 이용 한다. window.onload=function(){} or ready 이벤트

기본 명령은 jQuery 이며 애칭은 $ 이다./ 앞으로는 $ 을 되도록 사용 하게 될것이다.

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>   
<script type="text/javascript">
    function start() {
        alert("안녕하세요 load 이벤트 입니다.");
    }

    //window.onload=start;
    window.onload = function() {
        alert("이것도load 이벤트 입니다. ")
    }

    //ready 이벤트 ==> 문서를 읽어 DOM 구조로 만든후 발생하는 이벤트
    //jQuery 에서는 load 이벤트 대신 ready 이벤트를 이용 한다.
    jQuery(document).ready(function() {
        alert("이것은 ready 이벤트 입니다.");
    });
// jQuery 명령을 대신해서 $ 를 사용 할수 있다.
$(document).ready(function(){
    alert("이것은 $ 이용한 ready 이벤트 입니다. ");
});

$(function(){
    alert("ready이벤트의 축약형 입니다. ");
});
</script>

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

 

설명:appendTo("body") 바디의 끝단에 $(<div></div>)의 객체에 test라는 클래스를 지정.

"text" 명령 : "Click Me!!" 텍스트 삽입 . "Click": 명령=>function 명령으로 alert이벤트 발생함.

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

<script type="text/javascript" src="./js/jquery-1.7.2.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
    //$("div").css("background-color","yellow");
    // div 테그를 찾아서 css를 적용 한다.
    $("<div></div>",{
        "class": "test",
        "text" : "Click Me!!",
        "click" : function(){
            alert("클릭 이벤트 입니다.");
        }
    }).appendTo("body");
    //alert( $("body").html() ); // 해당 요소안의 내용을 HTML 코드 형식으로 보여 준다.    
    // 위 아래 는 바디 끝단에 추가 하여 원하는 요소들이 잘 추가가 되어있는지 확인 하는데 유용 하다.
    alert($("body").text() );    // 해당 요소 안의 내용중 문자 데이터만 보여 준다.
});
    //<시작테그명> 내용 </종료테그명>
</script>
</head>
<body>
<div>이 내용은 미리 존재 하는 내용 입니다.11 </div>
<div>이 내용은 미리 존재 하는 내용 입니다.22 </div>
<div>이 내용은 미리 존재 하는 내용 입니다.33 </div>
</body>

설명: .html() 을 이용 하기 위해서 전체 객체로 추출 해야 한다

$("div")[1]<-- div를 객체로 생성 [1] 것의 element추출 한 값을 다시 $() 객채 로 지정 . html()을 실행.

$(function(){
    alert($($("div")[1]).html())
});

설명:size() 와 length 를 이용 하여 내용물의 크기를 알아 추출 가능 하다

<script type="text/javascript">
$(function(){
    //alert("size()==>"+$("p").size());
    //alert("length==>"+$("p").length);
    var str= "";
    $("p").each(function(idx,element){
        str +="indx : "+idx+", data : "+ $(element).text()+"\n";  // $(this).text()+"\n";
    });
    alert(str);
});
</script>

 

<script type="text/javascript">
$(function(){
    var str = "";
   
    var pElement  =$("p").get();
    for(var i=0;i<pElement.length;i++){
        str += $(pElement[i]).html()+"\n";
    }
    alert(str);
});
</script>
</head>
<body>
    <p>첫번째</p>

    <div>
   
        <p>두번째</p>
   
    </div>

    <p>세번째</p>
</body>

설명: get()>>element(내용)추출/ /get(n)=[n] >>n(첨자)번째 내용물 추출

 

 

<script type="text/javascript">
$(function(){
    //alert($("p").get(1).innerHTML );
    //alert($($("p").get(1)).html() );
    //alert($($("p").get(1)).text() );
    alert($($("p")[1]).text() );
   
    //alert($("p").get(1).innerText ); // 폭스 에서는 안대..
   
});
</script>
</head>
<body>
    <p>첫번째</p>

    <div>
   
        <p>두번째</p>
   
    </div>

    <p>세번째</p>
</body>

 

 

 

설명: 일반적은 function 앞에 변수나 객채가 있어야 불러 올수있지만 아래와 같은 방법도 가능하다.

 

 

<script type="text/javascript">
(function(){
    // 익명함수를 구성 하고 호출 하는 방법
    alert("안녕하세요");
})();
    // 익명 함수 를 바로 출력 하기 위에서는 뒤에 펑션을 ()로 한번 묶고  (); 를 붙이면 가능 하다.
   
(function(name){
    // 익명함수를 구성 하고 호출 하는 방법
    alert(name+"씨 안녕하세요");
})("홍길동");
   
</script>
</head>
<body>
    <p>첫번째</p>

    <div>

        <p>두번째</p>

    </div>

    <p>세번째</p>
</body>

 

 

설명 : 기존에 사용 하는 jQuery 가 아닌 script 에서 (프로토 타입등.. ) $ 가 애칭등으로 사용된 경우 이후 jQuery를 사용 하는 경우 애칭이 사용이 안된다.이를 위해$을 애칭으로의 사용을 막는 것이다.

 

<script type="text/javascript">
jQuery.noConflict();// 이 명령 이후에는 jQuery 대신 $ 를 사용 할수 없다.

(function($){
    // 이 영역에서는 jQuery 대신 $를 사용 할수 있다.
    $(function(){
    alert($($("p").get(1)).text());
    });
    alert("안녕하세요");
})(jQuery);
</script>
</head>
<body>
    <p>첫번째</p>

    <div>

        <p>두번째</p>

    </div>

    <p>세번째</p>
</body>

위와 같다. 하지만 계속 $ 아닌 jQuery 를 사용 하는것은 불편 함으로 아래와 같이 적용 하자.

 

<script type="text/javascript">
    var $j = jQuery.noConflict();
    // jQuery 의 애칭인 $ 을 $j 로 변경 한것./ 제이쿼리의 애칭 사용을 금지 하고 제이쿼리객체를 돌려 준다.

    $j(function() {
        alert($j($j("p")[1]).text());
    });
</script>
</head>
<body>
    <p>첫번째</p>

    <div>

        <p>두번째</p>

    </div>

    <p>세번째</p>
</body>

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

3일차 export/change  (0) 2012.05.08
2일차 Selectors  (0) 2012.05.08
16일차 우편번호검색(json)  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
15일차 DB->JSON(포멧 하기)  (0) 2012.05.08
Posted by 사라링

zip.jpg

 

 

 

SELECT ZIPCODE, SIDO, GUGUN, DONG, RI, BLDG, BUNJI, SEQ FROM ZIPTB ;

 

제약조건:

PK_ZIPTB    Primary_Key   
SYS_C004141    Check    "ZIPCODE" IS NOT NULL
SYS_C004142    Check    "SIDO" IS NOT NULL
SYS_C004143    Check    "GUGUN" IS NOT NULL
SYS_C004144    Check    "DONG" IS NOT NULL
SYS_C004145    Check    "SEQ" IS NOT NULL

 

데이터

ZIPCODE, SIDO, GUGUN, DONG, RI, BLDG, BUNJI, SEQ

135-806    서울    강남구    개포1동        경남아파트        1
135-807    서울    강남구    개포1동        우성3차아파트    (1∼6동)    2
135-806    서울    강남구    개포1동        우성9차아파트    (901∼902동)    3
135-770    서울    강남구    개포1동        주공아파트    (1∼16동)    4
135-805    서울    강남구    개포1동        주공아파트    (17∼40동)    5
135-966    서울    강남구    개포1동        주공아파트    (41∼85동)    6
135-807    서울    강남구    개포1동        주공아파트    (86∼103동)    7
135-805    서울    강남구    개포1동        주공아파트    (104∼125동)    8
135-807    서울    강남구    개포1동        현대1차아파트    (101∼106동)    9
135-805    서울    강남구    개포1동            565    10
135-806    서울    강남구    개포1동            649∼651    11
135-807    서울    강남구    개포1동            652∼653    12
135-810    서울    강남구    개포1동            660    13
135-241    서울    강남구    개포1동                14
135-800    서울    강남구    개포2동        우성8차아파트    (801∼803동)    15

 

 

SimpleZip.jsp

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>SimpleZip</title>
<script type="text/javascript" src="../../js/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $(function(){
        $("#zipBtn").click(function(){
        win =window.open("zipSc2.jsp","우편번호","scrollbars=yes, width=450, height=300, resizable=yes, menubar=no, top=150, left=260");
            return true;
        });
       
    });

</script>


</head>
<body>
   
<table border=1>
<form name="zipform" action="save.jsp" method="post">
<tr><td>성명</td><td><input type="text" name="irum" size=12></td></tr>
<tr><td>우편번호</td><td><input type=text name="zip1" size=3 readonly>  -
<input type=text name="zip2" size=3 readonly>
<input type="button" name="zip" value="우편번호검색" id="zipBtn"></td></tr>
<tr><td>주소</td><td><input type=text name="address" size=30></td></tr>
<tr><td>전화번호</td>
<td> <input type=text name=tel1 size=5>-<input type=text name=tel2 size=5>-<input type=text name=tel3 size=5></td>
</tr>
<tr><td><input type=submit value=Save>   <input type=reset value=Reset> </td></tr>
</table>
</form>


</body>
</html>

 

zipSc2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/plain; charset=UTF-8" />
<title>우편 검색</title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/main.css" />
<script type="text/javascript" src="../../js/jquery-1.7.2.js"></script>
<script type="text/javascript">
/* function parent(d){
    alert(d);
    var v = val.value;

    if(!opener) return;
   
  } */
  function myClick(){
      alert(눌렀다);
/*        var tb = document.getElementById("tb");

       alert(tb.rows[1].cells[4].innerText);
   */
  };
     $(function(){
         $("#list tr").live("click",function(){
        
             var  zipsp=$(this,"td").eq(0).text();
             //alert(zipsp);
             var zipsp2 = zipsp.split("-");
             var zipfirst=zipsp2[0];
             var zipsp3=zipsp2[1].split(":");
             //alert(zipsp3[0]);
             var ziplast=zipsp3[0];
             var addfinal = zipsp3[1];
             opener.document.zipform.zip1.value=zipfirst;
             opener.document.zipform.zip2.value=ziplast;
             opener.document.zipform.address.value=addfinal;
             self.closed();
            
        
         });
        $("#zipBtnDB").click(function(){
            //alert("눌렀따");
           
            var dong=$.trim($("#zipDBSC").val());
            if(dong==null||dong==""){
                alert("동이름을 입력해주세요.");
                return;
            }
           
            $.ajax({
                "url" : "zipSc3.jsp",
                "type" : "get",
                "dataType": "json",
                "data" : {"dong":dong},
                "success" : function(data){
                    var str = "<table border='1' bordercolor='blue'>";
                    str +="<tr >";
                    $.each(data,function(i,v){
                        str +="<td>"+v.zipcode +":</td>";
                        str +="<td>"+v.sido +" ";
                        str +=v.gugun +" ";
                        str +=v.dong +" ";
                        str +=v.ri +" ";
                        str +=v.bldg +" ";
                        str +=v.bunji +" ";
                        str +="</td></tr>";
                    });
                    str +="</table>";
                    $("#list").html(str);
                   
                },
                "error" : function(info, xhr){
                    if(info.readyState == '4'){
                     alert('문제가 발생했습니다.\n상태코드 : ' + info.status+ '\n\n' + info.responseText);
                    }
                    else{
                     alert('문제가 발생했습니다.\n잠시후 다시 시도해 주세요.\n 상태코드 : ' +info.status);
                    }
                   }
            });
             
           
/*              $.getJSON(
                "zipSc3.jsp",
                "lowAdd="+lowAdd,
                function(data){
                    alert(data);
                    var str = "<table border='1' bordercolor='blue'>";
                    $.each(data,function(i,v){
                        str +="<tr><td>"+(i+1)+"번</td> ";
                        str +="<td>"+v.zipcode +" </td>";
                        str +="<td>"+v.sido +" ";
                        str +=v.gugun +" ";
                        if(v.ri   !=null)str +=+v.ri +" ";
                        if(v.bldg !=null)str +=+v.bldg +" ";
                        if(v.bunji!=null)str +=+v.bunji +" ";
                        str +="</td></tr>";
                    });
                    str +="</table>";
                    $("#showZip").html(str);
                }
            );  */
           
        });
    });
</script>

</head>
<body>
<table>
<tr>
    <td>동검색</td><td><input type="text" id="zipDBSC" size="8" /> ex) '대흥동'
    <input type="button" id="zipBtnDB" value="검색"/></td>
</tr>

</table>


<div id="list" class="zipList">

</div>




</body>
</html>

zipSc3.jsp

<%@page import="kr.or.ddit.db.*"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/plain; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8");

    String dong =request.getParameter("dong");
%>    
<%
    
Connection conn= null;
    PreparedStatement psmt= null;
    ResultSet rs = null;
    
    

try{
    conn = ConnectionProvider.getConnection();
    psmt = conn.prepareStatement("SELECT ZIPCODE, SIDO, GUGUN, DONG, RI, BLDG, BUNJI, SEQ FROM ZIPTB where dong like ?");
    psmt.setString(1, "%"+dong+"%");
    rs= psmt.executeQuery();

%>
[
    <%while(rs.next()){
    if(rs.getRow()>1){
        out.print(",");
    }
    %>
{
    "zipcode" : "<%=Util.toJS(rs.getString("zipcode")) %>",
    "sido"    : "<%=Util.toJS(rs.getString("sido"))%>",
    "gugun"   : "<%=Util.toJS(rs.getString("gugun"))%>",
    "dong"    : "<%=Util.toJS(rs.getString("dong"))%>",
    "ri"      : "<%=Util.toJS(rs.getString("ri"))%>",
    "bldg"    : "<%=Util.toJS(rs.getString("bldg"))%>",
    "bunji"   : "<%=Util.toJS(rs.getString("bunji"))%>"
}
<%
}%>
]
<%
}catch(SQLException e){
    e.printStackTrace();
}finally{
if(rs!=null) try{rs.close();}catch(Exception e){}
if(psmt!=null) try{psmt.close();}catch(Exception e){}
if(conn!=null) try{conn.close();}catch(Exception e){}
}
%>

 

Util.java (데이터 포멧)

package kr.or.ddit.db;

public class Util {

    public static String toJS(String str){
        if(str==null) return "";
        return str.replace("\\", "\\\\")
                  .replace("\"","\\\"")
                  .replace("\'","\\\'")
                  .replace("\r\n","\\n")
                  .replace("\n","\\n");
    }
   
}

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

2일차 Selectors  (0) 2012.05.08
1일차 get/function  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
15일차 DB->JSON(포멧 하기)  (0) 2012.05.08
11일차 Ajax2  (0) 2012.05.08
Posted by 사라링

16일차 select(DBMS:JSON:)

2012. 5. 8. 18:23

sel.jpg

 

DB LPROD

 

  • LPROD_ID
  • LPROD_GU
  • LPROD_NM

 

1    P101    computer
2    P102    electronic
3    P201    womancasual
4    P202    남성캐주얼
5    P301    etcbrand
6    P302    cosmetic
7    P401    record/CD
8    P402    book
9    P403    stationery
15    p203    아동복

 

DB PROD

 

  • PROD_ID
  • PROD_NAME
  • PROD_LGU
  • PROD_BUYER
  • PROD_COST
  • PROD_PRICE
  • PROD_SALE
  • PROD_OUTLINE
  • PROD_DETAIL
  • PROD_IMG
  • PROD_TOTALSTOCK
  • PROD_INSDATE
  • PROD_PROPERSTOCK
  • PROD_SIZE
  • PROD_COLOR
  • PROD_DELIVERY
  • PROD_UNIT
  • PROD_QTYIN
  • PROD_QTYSALE
  • PROD_MILEAGE

 

P101000001    모니터 삼성전자15인치칼라    P101    P10101    210000    290000    230000    평면모니터의 기적    우리기술의 개가
P101000002    모니터 삼성전자17인치칼라    P101    P10101    310000    390000    330000    평면모니터의 기적    우리기술의 개가
P101000003    모니터 삼성전자19인치칼라    P101    P10101    410000    490000    430000    평면모니터의 기적    우리기술의 개가
P101000004    삼보컴퓨터 P-III 600Mhz    P101    P10102    1150000    1780000    1330000    쉬운 인터넷을.....    새로운 차원의 컴퓨터를.....
P101000005    삼보컴퓨터 P-III 700Mhz    P101    P10102    2150000    2780000    2330000    쉬운 인터넷을.....    새로운 차원의 컴퓨터를.....
P101000006    삼보컴퓨터 P-III 800Mhz    P101    P10102    3150000    3780000    3330000    쉬운 인터넷을.....    새로운 차원의 컴퓨터를.....
P102000001    대우 칼라 TV 25인치    P102    P10201    690000    820000    720000    집안에 영화관을.....    평면 브라운관의 새장.....
P102000002    대우 칼라 TV 29인치    P102    P10201    890000    1020000    920000    집안에 영화관을.....    평면 브라운관의 새장.....
P102000003    삼성 칼라 TV 21인치    P102    P10202    590000    720000    620000    집안에 영화관을.....    평면 브라운관의 새장.....
P102000004    삼성 칼라 TV 29인치    P102    P10202    990000    1120000    1020000    집안에 영화관을.....    평면 브라운관의 새장.....
P102000005    삼성 칼라 TV 53인치    P102    P10202    1990000    2120000    2020000    집안에 영화관을.....    평면 브라운관의 새장.....
P102000006    삼성 캠코더    P102    P10202    660000    880000    770000    가족과 영화촬영을.....    레저와 함께.....
P102000007    대우 VTR 6헤드    P102    P10201    550000    760000    610000    선명한 화질    감동의 명화를.....
P201000001    여성 봄 셔츠 1    P201    P20101    21000    42000    27000    파릇한 봄을 위한    아름다운.....
P201000002    여성 봄 셔츠 2    P201    P20101    22000    43000    28000    파릇한 봄을 위한    아름다운.....
P201000003    여성 봄 셔츠 3    P201    P20101    23000    44000    29000    파릇한 봄을 위한    아름다운.....
P201000004    여성 여름 셔츠 1    P201    P20101    12000    21000    25000    시원한 여름을 위한    아름다운.....
P201000005    여성 여름 셔츠 2    P201    P20101    13000    22000    26000    시원한 여름을 위한    아름다운.....
P201000006    여성 여름 셔츠 3    P201    P20101    14000    23000    27000    시원한 여름을 위한    아름다운.....
P201000007    여성 겨울 라운드 셔츠 1    P201    P20101    31000    45000    33000    따뜻한 겨울을 위한    아름다운.....
P201000008    여성 겨울 라운드 셔츠 2    P201    P20101    32000    46000    34000    따뜻한 겨울을 위한    아름다운.....
P201000009    여성 겨울 라운드 셔츠 3    P201    P20101    33000    47000    35000    따뜻한 겨울을 위한    아름다운.....
P201000010    여성 청바지 1    P201    P20102    55000    66000    57000    편리한 활동파를 위한    편리한.....
P201000011    여성 청바지 2    P201    P20102    56000    67000    58000    편리한 활동파를 위한    편리한.....
P201000012    여성 청바지 3    P201    P20102    57000    68000    59000    편리한 활동파를 위한    편리한.....
P201000013    여성 봄 자켓 1    P201    P20101    110000    210000    170000    편리한 활동파의 봄을 위한    아름다운.....
P201000014    여성 봄 자켓 2    P201    P20101    120000    220000    180000    편리한 활동파의 봄을 위한    아름다운.....
P201000015    여성 봄 자켓 3    P201    P20101    130000    230000    190000    편리한 활동파의 봄을 위한    아름다운.....
P201000016    여성 여름 자켓 1    P201    P20102    100000    160000    130000    편리한 활동파의 여름을 위한    아름다운.....
P201000017    여성 여름 자켓 2    P201    P20102    110000    170000    140000    편리한 활동파의 여름을 위한    아름다운.....
P201000018    여성 여름 자켓 3    P201    P20102    120000    180000    150000    편리한 활동파의 여름을 위한    아름다운.....
P201000019    여성 겨울 자켓 1    P201    P20102    210000    270000    240000    편리한 활동파의 따뜻한 겨울을 위한    아름다운.....
P201000020    여성 겨울 자켓 2    P201    P20102    220000    280000    250000    편리한 활동파의 따뜻한 겨울을 위한    아름다운.....
P201000021    여성 겨울 자켓 3    P201    P20102    230000    290000    260000    편리한 활동파의 따뜻한 겨울을 위한    아름다운.....
P202000001    남성 봄 셔츠 1    P202    P20201    10000    19000    15000    파릇한 봄을 위한    아름다운.....
P202000002    남성 봄 셔츠 2    P202    P20201    13000    22000    18000    파릇한 봄을 위한    아름다운.....
P202000003    남성 봄 셔츠 3    P202    P20201    15000    24000    20000    파릇한 봄을 위한    아름다운.....
P202000004    남성 여름 셔츠 1    P202    P20201    18000    28000    23000    시원한 여름을 위한    아름다운.....
P202000005    남성 여름 셔츠 2    P202    P20201    23000    33000    28000    시원한 여름을 위한    아름다운.....

...... 등등

 

 

lprod.jsp (main)

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>lprod main</title>
<script type="text/javascript" src="../../js/jquery-1.7.2.js"></script>
<script type="text/javascript">

/*
lprod_gu
lprod_nm

<option value="">내용</option>
 */
 
     function prodchange(){
     var prod_id="";
     $("select[name='prod'] option:selected").each(function(){
         prod_id+=$(this).val();
     });
     alert(prod_id);
      $.getJSON(
        "lpdata3.jsp",
        "prod_id="+prod_id,
        function(data){
            var str = "<table border='1' bordercolor='blue' align='center'>";
            $.each(data,function(i,v){
                str +="<tr><th>prod_id     </th><td>"+v.prod_id     +"</td></tr>";
                str +="<tr><th>prod_name   </th><td>"+v.prod_name   +"</td></tr>";
                str +="<tr><th>prod_buyer  </th><td>"+v.prod_buyer  +"</td></tr>";
                str +="<tr><th>prod_cost   </th><td>"+v.prod_cost   +"</td></tr>";
                str +="<tr><th>prod_price  </th><td>"+v.prod_price  +"</td></tr>";
                str +="<tr><th>prod_sale   </th><td>"+v.prod_sale   +"</td></tr>";
                str +="<tr><th>prod_outline</th><td>"+v.prod_outline+"</td></tr>";
                str +="<tr><th>prod_detail </th><td>"+v.prod_detail +"</td></tr>";
            });
            str +="</table>";
            $("#prodDetail").html(str);
/*            
prod_id    
prod_name  
prod_buyer 
prod_cost  
prod_price 
prod_sale  
prod_outline
prod_detail    


           
           
           
 */           
        }
    ); 
     
 
 
     }
 
     function lprodChange(){
     var gu="";
     $("select[name='lprod'] option:selected").each(function(){
         gu+=$(this).val();
         //gu=$(this).eq(0).val();
     });
      $.getJSON(
        "lpdata2.jsp",
        "gu="+gu,
        function(data){
            var str = "";
            $.each(data,function(i,v){
            str +="<option value='"+v.prod_id+"'>"+v.prod_name+"</option><br>";
            });
           
            $("#prod").html(str);
        }
    ); 
 }
 
 
    $(function(){
       
        $("select[name='prod']").change(prodchange);
        $("select[name='lprod']").change(lprodChange);

/*         $.ajax({
            "url" : "lpdata1.jsp",
            "dataType": "json",
            "success" : function(data){
                alert(data);
                var str = "";
                $.each(data,function(i,v){
                    str +="<option value="+v.lprod_gu+">"+v.lprod_nm"</option>";
                });
                str +="</option>";
                $("#lprod").html(str);
               
            },
            "error" : function(info, xhr){
                if(info.readyState == '4'){
                 alert('문제가 발생했습니다.\n상태코드 : ' + info.status+ '\n\n' + info.responseText);
                }
                else{
                 alert('문제가 발생했습니다.\n잠시후 다시 시도해 주세요.\n 상태코드 : ' +info.status);
                }
               }
        }); */
         $.getJSON(
                "lpdata1.jsp",
                function(data){
                    var str = "";
                    $.each(data,function(i,v){
                    str +="<option value='"+v.lprod_gu+"'>"+v.lprod_nm+"</option>";
                    });
                    $("#lprod").html(str);
                }
        );
   
       
       
       
    });
</script>


</head>
<body>

<form action="testForm">
<table align="center">
    <tr>
        <td>
            <select name ="lprod" id="lprod">
           
            </select>
       
        </td>
       
        <td width="50">&nbsp;</td>
        <td>   
            <select name="prod" id="prod">
           
           
            </select>
        </td>
    </tr>
</table>
</form>
<div id="prodDetail"></div>

</body>
</html>

lpdata1.jsp

<%@page import="kr.or.ddit.db.*"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/plain; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8");

%>   
<%
   
    Connection conn= null;
    PreparedStatement psmt= null;
    ResultSet rs = null;
   
   

try{
    conn = ConnectionProvider.getConnection();
    psmt = conn.prepareStatement("SELECT LPROD_GU, LPROD_NM FROM LPROD");
    rs= psmt.executeQuery();

%>
[
    <%while(rs.next()){
    if(rs.getRow()>1){
        out.print(",");
    }
    %>
{
   
    "lprod_gu"  : "<%=Util.toJS(rs.getString("lprod_gu"))%>",
    "lprod_nm"  : "<%=Util.toJS(rs.getString("lprod_nm"))%>"

}
<%
}%>
]
<%
}catch(SQLException e){
    e.printStackTrace();
}finally{
if(rs!=null) try{rs.close();}catch(Exception e){}
if(psmt!=null) try{psmt.close();}catch(Exception e){}
if(conn!=null) try{conn.close();}catch(Exception e){}
}
%>

lpdata2.jsp

<%@page import="kr.or.ddit.db.*"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/plain; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8");

%>   
<%
    String gu = request.getParameter("gu");
    Connection conn= null;
    PreparedStatement psmt= null;
    ResultSet rs = null;

   

try{
    conn = ConnectionProvider.getConnection();
    psmt = conn.prepareStatement("select prod_id, prod_name from prod where prod_lgu=?");
    psmt.setString(1, gu);
    rs= psmt.executeQuery();

%>
[
    <%while(rs.next()){
    if(rs.getRow()>1){
        out.print(",");
    }
    %>
{
   
    "prod_id"  : "<%=Util.toJS(rs.getString("prod_id"))%>",
    "prod_name"  : "<%=Util.toJS(rs.getString("prod_name"))%>"

}
<%
}%>
]
<%
}catch(SQLException e){
    e.printStackTrace();
}finally{
if(rs!=null) try{rs.close();}catch(Exception e){}
if(psmt!=null) try{psmt.close();}catch(Exception e){}
if(conn!=null) try{conn.close();}catch(Exception e){}
}
%>

lpdata3.jsp

<%@page import="kr.or.ddit.db.*"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/plain; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8");

%>   
<%
    String prod_id =request.getParameter("prod_id");
    Connection conn= null;
    PreparedStatement psmt= null;
    ResultSet rs = null;

try{
    conn = ConnectionProvider.getConnection();
    psmt = conn.prepareStatement("select prod_id, prod_name,prod_buyer,prod_cost,prod_price,prod_sale,prod_outline,prod_detail from prod where prod_id=?");
    psmt.setString(1, prod_id);
    rs= psmt.executeQuery();

%>
[
    <%while(rs.next()){
    if(rs.getRow()>1){
        out.print(",");
    }
    %>
{
   
    "prod_id"  : "<%=Util.toJS(rs.getString("prod_id"))%>",
    "prod_name"  : "<%=Util.toJS(rs.getString("prod_name"))%>",
    "prod_buyer"  : "<%=Util.toJS(rs.getString("prod_buyer"))%>",
    "prod_cost"  : "<%=Util.toJS(rs.getString("prod_cost"))%>",
    "prod_price"  : "<%=Util.toJS(rs.getString("prod_price"))%>",
    "prod_sale"  : "<%=Util.toJS(rs.getString("prod_sale"))%>",
    "prod_outline"  : "<%=Util.toJS(rs.getString("prod_outline"))%>",
    "prod_detail"  : "<%=Util.toJS(rs.getString("prod_detail"))%>"

}
<%
}%>
]
<%
}catch(SQLException e){
    e.printStackTrace();
}finally{
if(rs!=null) try{rs.close();}catch(Exception e){}
if(psmt!=null) try{psmt.close();}catch(Exception e){}
if(conn!=null) try{conn.close();}catch(Exception e){}
}
%>

 

Util.java (format 용)

package kr.or.ddit.db;

public class Util {

    public static String toJS(String str){
        if(str==null) return "";
        return str.replace("\\", "\\\\")
                  .replace("\"","\\\"")
                  .replace("\'","\\\'")
                  .replace("\r\n","\\n")
                  .replace("\n","\\n");
    }
   
}

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

1일차 get/function  (0) 2012.05.08
16일차 우편번호검색(json)  (0) 2012.05.08
15일차 DB->JSON(포멧 하기)  (0) 2012.05.08
11일차 Ajax2  (0) 2012.05.08
-1일차 css셋팅  (0) 2012.05.08
Posted by 사라링

<%@ page language="java" contentType="text/plain; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>   
<%
    String str = "안녕하세요 \n '홍길동' 입니다. ";

%>
{
    "insa" : '<%=str %>'
}

이러한 데이터를 출력 하면 잘못 나온다.

 잘못된표현.jpg

 

이것을 옳바르게 바꾸기 위해선 insa2 와 같이 만들어야 하는데. static 한 메서드를 만들어야 한다.

 

public class Util {

    public static String toJS(String str){
        if(str==null) return "";
        return str.replace("\\", "\\\\")
                  .replace("\"","\\\"")
                  .replace("\'","\\\'")
                  .replace("\r\n","\\n")
                  .replace("\n","\\n");
    }
   
}

이러한 클래스를 만들어서

 

jsp 소스 중간에 "insa2" : '<%=Util.toJS(str) %>'  를 포함 시키면 아래와 같이 insa2 가 출력이 되며 JSON 표기법 사용이 가능 하다.

 

옳은것.jpg

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

16일차 우편번호검색(json)  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
11일차 Ajax2  (0) 2012.05.08
-1일차 css셋팅  (0) 2012.05.08
J-쿼리  (0) 2012.05.08
Posted by 사라링

11일차 Ajax2

2012. 5. 8. 18:23

 

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

16일차 우편번호검색(json)  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
15일차 DB->JSON(포멧 하기)  (0) 2012.05.08
-1일차 css셋팅  (0) 2012.05.08
J-쿼리  (0) 2012.05.08
Posted by 사라링

-1일차 css셋팅

2012. 5. 8. 18:22



 

 아직은 기초를 배우고 있지만 포인트는 $( )구문을 이용해서 내가 적용하고자하는 객체를 찾아 갈수 있다.

 

<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>Insert title here</title>

 

<!--  css 셋팅 -->

<link type="text/css" href="css/custom-theme/jquery-ui-1.8.17.custom.css" rel="stylesheet" /> 
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script>

 

<script type="text/javascript">
function color(){
 $('.list').css("backgroundColor",'yellow');
 
 
}
function odd(){
 $(".list>li:odd").css("background-color" , "#bbbbff" ).css("border" ," thick pink dotted " );
  
}

function even(){
 $(".list>li:not(:odd)").css("background-color" , "#bbbbff" ).css("border" ," thick pink dotted " );
  
}

function bokyoung(){
 $(".list>li:gt(2)").hide(2000);
 
 
}
function ja(){
 for(var i =0 ; i <100 ; i++){
 $(".jasik>ol").css("background-color" , "#bbbbff" ).fadeIn(2000);
 $(".jasik>ol").css("background-color" , "#bbbbff" ).fadeOut(1000);
 }
 
}

function ground(){
  $('.list > li ').animate({"background-color":"white","width":500},5000).hide(5000);
}
/*
 앞에다가 $(document).ready를 함수앞에다가 안써도 상관은 없지만
 나중에 많아지면 중첩에 문제가 생길수 있기때문에 꼭 쓰는것을 추천한다!!
 $(document).ready(function() { 내용 }) ;

  : first(첫번째것) :last (마지막것)
  : contains(문자열)(문자열을 포함하는것),
  : empty(내용이 없는것), :has(선택자)(선택자를 가진것),
  : parent(부모)
  : hidden(숨겨진 것), :visible(보이는 것),
  : not(선택자)(선택자가 아닌것)
  : gt(index)(보다큰것)  :lt(index)(보다작은것)

*/


</script>

</head>
<body>
<ol class="list" >
 <input type="button" value="배경노랑색으로!!" onclick = "color()" />
 <input type="button" value="없어져라 야삐!!" onclick = "ground()" />
 <input type="button" value="짝수만!!!" onclick = "even()" />
 <input type="button" value="홀수만사라져라!!" onclick = "odd()" />
 <input type="button" value="복영밑으로사라져!" onclick = "bokyoung()" />
 <input type="button" value="자식디져라!!!" onclick = "ja()" />
 
 <li class="jasik">최강채광0
  <ol>
   <li>야호</li>
   <li>야호~!!</li>
  </ol>
 </li>
 <li>쓰담지연1</li>
 <li>꽐라준영2</li>
 <li>어깨복영3</li>
 <li>봉긋형석4</li>
 <li>야하!!쿄5</li>

</ol>

</body>

</html>

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

16일차 우편번호검색(json)  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
15일차 DB->JSON(포멧 하기)  (0) 2012.05.08
11일차 Ajax2  (0) 2012.05.08
J-쿼리  (0) 2012.05.08
Posted by 사라링

J-쿼리

2012. 5. 8. 18:22

1.  http://visualjquery.com/  J쿼리의 테크트리가 담겨있는 곳~

2. http://jqueryui.com/ 각종 J쿼리에 대한 테마도 받을수있는곳이다

 

저기 위에서 테마를 고르고 다운로드가 가능하다!! ^^ 완전 공짜라서 좋다!

그 후에 다운을 받고 자기 프로젝트 안에다가 넣어 두면 준비 완료!!

 

 

그 후에 마지막으로 이클립스에 셋팅만 하면 끝^^

 

이클립스에서 jQuery 자동완성 설정하기

  • 기본적으로 Aptana Code Assist 에 jQuery 는 포함되어 있지 않다.

기본적으로 Aptana Code Assist 에 jQuery 는 포함되어 있지 않다.

  • Help - Install Aptana Features… 메뉴 선택.

Help - Install Aptana Features... 메뉴 선택.

  • jQuery Support 선택.

jQuery Support 선택.

  • jQuery Support 설치.

jQuery Support 설치.

  • 이클립스 환경 설정

이클립스 환경 설정

  • Aptana - Editors - JavaScript - Code Assist
  • jQuery 항목 체크

Aptana - Editors - JavaScript - Code Assist, jQuery 항목 체크

  • ▼ 열고자 하는 파일을 우클릭하여 Open With - Others 선택

열고자 하는 파일을 우클릭하여 Open With - Others 선택

  • Aptana HTML Editor 로 열어서 편집

Aptana HTML Editor 로 열어서 편집

  • jQuery Code Assist 가 동작하는 모습

jQuery Code Assist 가 동작하는 모습

  • jQuery Code Assist 가 동작하는 모습

jQuery Code Assist 가 동작하는 모습

 

 

 이러면 준비 끝!! 이제는 J쿼리를 본격적으로 공부해보자!!

추가 위키 백과 사전에 jQuery 검색 결과

jQuery

위키백과, 우리 모두의 백과사전.
jQuery
개발자 jQuery 개발팀
최근 버전 1.6.2 / 2011년 6월 30일
종류 웹 애플리케이션 프레임웍
라이선스 듀얼 라이선스: GPL 또는 MIT
웹사이트 http://jquery.com/

jQueryHTML클라이언트 사이드 스크립트 언어를 단순화 하도록 설계된 브라우저 호환성이 있는 자바스크립트 라이브러리이다. 존 레식에 의해, 2006년 뉴욕 시 바캠프(Barcamp NYC)에서 공식으로 소개되었다. jQuery는 오늘날 가장 인기있는 자바스크립트 라이브러리 중 하나다.

jQuery는 MIT 라이선스GNU 일반 공중 사용 허가서v2의 듀얼 라이선스를 가진 자유 오픈 소프트웨어이다. jQuery의 문법은 코드 보기, 문서 객체 모델 찾기, 애니메이션 만들기, 이벤트 제어, Ajax 개발이 쉽도록 디자인 되었다. 또한, jQuery는 개발자가 플러그인을 개발할 수 있는 기능을 제공한다.

마이크로소프트노키아는 자사 플랫폼에 jQuery를 포함하는 계획을 발표한 바 있다. 마이크로소프트비주얼스튜디오의 ASP.NET AJAX 프레임워크와 ASP.NET MVC 프레임워크에 적용했고, 노키아는 자사의 런타임 웹 위젯 개발 플랫폼에 통합하였다. 또한, jQuery는 미디어위키에도 1.16 버전부터 사용되고 있다.

목차

 [숨기기

[편집] 기능

jQuery는 다음과 같은 기능을 갖고 있다:

  • DOM 엘리먼트 선택
  • DOM 트래버설 및 수정 (CSS 1-3 지원. 기본적인 XPath를 플러그인 형태로 지원)
  • 이벤트
  • CSS 조작.
  • 특수효과 및 애니메이션
  • Ajax
  • 확장성
  • 유틸리티 - 브라우저 버전, "each" 함수
  • 자바스크립트 플러그인

[편집] 사용법

jQuery는 한 개의 JavaScript 파일로 존재한다. 공통의 DOM, 이벤트, 특수 효과, Ajax 함수를 포함한다. 다음 코드를 쓰면, 웹 페이지로 포함시킬 수 있다:

<script type="text/javascript" src="path/to/jQuery.js"></script>

jQuery는 두 가지의 상호 작용 스타일을 갖고 있다:

  • $ 함수 이용. jQuery 오브젝트의 팩토리 메소드이다. 이 함수들은 "chainable"하다: 각각은 jQuery 오브젝트를 반환한다.
  • $. -가 앞에 붙은 함수 이용. 이들 함수는 jQuery 오브젝트 그 자체와 연동되지는 않는다.

일반적으로 여러 개의 DOM 노드들을 조작하는 웍플로우는 $ 함수로 시작된다. CSS 셀렉터 스트링을 가지고 호출된다. 결과적으로 0개 혹은 그 이상의 HTML 페이지 내의 엘리먼트를 리퍼런스하는 jQuery 오브젝트가 반환된다. 이 노드 집합들은 jQuery 오브젝트에 대해 인스턴스 메소드들을 적용함으로써 조작될 수 있다. 혹은 노드들 그 자체가 조작될 수 있다. 예를 들면 다음과 같다:

$("div.test").add("p.quote").addClass("blue").slideDown("slow");

div 태그가 달린 모든 엘리먼트를 찾되, 클래스 애트리뷰트가 test인 것을 찾는다. p 태그를 찾되, 클래스 애트리뷰트가 quote인 것을 찾는다. 찾아낸 각각의 엘리먼트에 대해 클래스 애트리뷰트 blue를 추가한다. 그 뒤 애니메이션 효과를 주어 아래쪽으로 슬라이드(미끄러지게) 시킨다. $add 함수는, 찾아낸(matched) 집합(set)에 영향을 준다. addClassslideDown는 리퍼런스된 노드들에 영향을 준다.

$.가 앞에 붙은 함수들은, 글로벌 프로퍼티나 비해이비어에 영향을 주는, 간편한(유틸리티) 메소드들이다. 예를 들면 다음과 같다:

$.each([1,2,3], function() {
  document.write(this + 1);
});

234 를 도큐먼트에 출력한다.

Ajax 루틴들은 $.ajax 및 관련 코드를 이용하여 수행할 수 있다. 이를 사용하여, 원격 데이터(remote data)를 로드하거나 조작할 수 있다.

$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});

… 파라미터 name=John, location=Boston을 주면서 some.php에 요청을 보낸다. 요청이 성공적으로 수행되었으면, 그 응답이 alert()된다.

 

 

이 글은 스프링노트에서 작성되었습니다.

'J-Query' 카테고리의 다른 글

16일차 우편번호검색(json)  (0) 2012.05.08
16일차 select(DBMS:JSON:)  (0) 2012.05.08
15일차 DB->JSON(포멧 하기)  (0) 2012.05.08
11일차 Ajax2  (0) 2012.05.08
-1일차 css셋팅  (0) 2012.05.08
Posted by 사라링

정규표현식  연산자, 기호 등을 가지고 AS-PATH에 대한 Filtering
  서버에서도 많이 사용
연산자/기호의 종류 1.  ^ : 시작을 의미
      예) ^1 : 나의 neighbor의 AS가 준 정보, AS-PATH가 1로 시작하는 모든 정보
 2. $ : 끝을 의미
      예) 3$ : AS 3번이 만든 정보, AS-PATH가 3으로 끝나는 모든 정보

 3. | : or을 의미
      예) ^1|2 : 1로 시작하거나 2로 시작하는 정보
 4. [] : 포함
      예) [12345] 또는 [1-5] : 1 또는 2 또는 3 또는 4 또는 5를 포함하는 정보
 5. _ : 시작(^), 끝($), 공백을 의미하지만 문자는 올 수 없음 
      예) _2_ : 2로 시작하거나 2로 끝나거나 2를 포함하는 정보
 6. () : 분배
      예) ^(2|3)_100 = ^2_100|^3_100 : 2로 시작하고 100을 포함하는 정보
 7. . : 어떠한 문자가와도 상관이 없다
      예) [1-5]. : 1부터 5를 포함하고 1~5에서 표기되는 모든 AS-PATH(11,22,33 등)를 포함
 8. \ : 특수문자를 표시하기 위한 기호
      예) \/24 : /24
 9. * : AS뒤에 쓰여서 AS가 하나도 없거나 또는 무수히 많은 경우
      예) ^[0-9]+_([0-9])+$ : AS번호가 2개 달린 경로의 일반화
 10. + : AS뒤에 쓰여서 AS가 하나 있거나 또는 무수히 많은 경우
 11. ? : AS뒤에 쓰여서 AS가 하나도 없거나  또는 하나인 경우

일반적 표현
   예) ^$ : AS가 하나도 없는 경로, IBGP로 받은 정보
   예) .* : 모든 경로

정규표현식 Configure
  (config)# router bgp {AS번호}  (config-router)# neighbor {Next-hop IP} filter-list {ACL num}  (config)# ip as-path access-list {num} {permit|deny} {정규표현식}  또는
  (config-router)#neighbor {next-hop IP} route-map {name} in  (config)# route-map {name}  (config-route-map)# match as-path {num}  (config-route-map)# set ________________  (config)#ip as-path access-list {num} {permit|deny} {정규표현식}

예제
 

1. R1에서 R2로 들어올때 AS3 정보만 permit : 3$ or ^2_3$

  2. R1에서 R4로 들어올때 AS6 정보만 permit : 6$ or ^4_5_6$ or ^[0-9]+[0-9]+[0-9]?$\







'JSP' 카테고리의 다른 글

Problems warning 를 제거 하자.  (1) 2012.10.23
html excel 추출 하기.& Jquery excel 추출 하기.  (0) 2012.06.16
기본JDBC 만들기  (0) 2012.05.08
Tiles(레이아웃처리)  (0) 2012.05.08
Propertise 한글 사용  (0) 2012.05.08
Posted by 사라링

기본JDBC 만들기

 | JSP
2012. 5. 8. 18:18

ojdbc.jpg  WEB-INF/lib 폴더 안에 ojdbc14.jar 파일을 넣는다. libraries/Web App Libraries 폴더 안에서 확인 가능

 

memberlist.jsp

 

<?xml version="1.0" encoding="UTF-8" ?>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>10/memberList.jsp</title>
</head>
<body>

<%
    Connection conn = null;
    PreparedStatement psmt = null;
    ResultSet rs = null;
    // 실행중에 해당 클래스를 로딩(문자열로) 하겠다.
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","hun","java");

// member 라는 테이블이 생성 되어 있다는 전제 조건 하에 !
    psmt=conn.prepareStatement("select * from member");
    rs=psmt.executeQuery();
%>
<h4 align="center">회원 목록</h4>
<table align="center" border="1">
    <thead>
    <tr>
        <th bgcolor="pink">ID</th>
        <th bgcolor="pink">성명</th>
        <th bgcolor="pink">직업</th>
        <th bgcolor="pink">e-mail</th>
        <th bgcolor="pink">hp</th>
    </tr>
    </thead>
    <tbody>
    <%
    while(rs.next()){
    %>
        <tr>
            <td><%=rs.getString("mem_id") %></td>
            <td><%=rs.getString("mem_name") %></td>
            <td><%=rs.getString("mem_job") %></td>
            <td><%=rs.getString("mem_mail") %></td>
            <td><%=rs.getString("mem_hp") %></td>
        </tr>
    <%} %>
    </tbody>

</table>
</body>
</html>
<%
if(rs!=null)try{rs.close();}catch(SQLException e){}
if(psmt!=null)try{psmt.close();}catch(SQLException e){}
if(conn!=null)try{conn.close();}catch(SQLException e){}
%>

 

memberview.jsp

<?xml version="1.0" encoding="UTF-8" ?>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/main.css" />
<title>11/memberview.jsp</title>
</head>
<body>
<div id="form">
<%
    // 실제 회원아이디는 센션에서 꺼내야 합니다.
   
    String id=request.getParameter("mem_id");
    if(id==null || id.equals("")){
        response.sendRedirect(request.getContextPath()+"/index.jsp");
        return;
    }

    // 만약에 id 가 null 이라면
    Connection conn = null;
    PreparedStatement psmt = null;
    ResultSet rs = null;
    // 실행중에 해당 클래스를 로딩(문자열로) 하겠다.
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","hun","java");
    psmt=conn.prepareStatement("select * from member where mem_id = ?");
    psmt.setString(1, id);
   
    rs=psmt.executeQuery();
%>
<h4 align="center">회원 상세 보기</h4>
<table align="center" border="1">
    <tbody>
    <%
    if(rs.next()){
    %>
    <tr>
        <th>ID</th>
        <td><%=rs.getString("mem_id") %></td>
    </tr>
    <tr>
        <th>성명</th>
        <td><%=rs.getString("mem_name") %></td>
    </tr>
    <tr>
        <th>주민번호</th>
        <td><%=rs.getString("mem_regno1") %>-<%=rs.getString("mem_regno2") %></td>
    </tr>
    <tr>
        <th>생일</th>
        <td><%=rs.getString("mem_bir") %></td>
    </tr>
    <tr>
        <th>주소</th>
        <td><%=rs.getString("mem_zip") %><br />
            <%=rs.getString("mem_add1") %>
            <%=rs.getString("mem_add2") %>
        </td>
    </tr>
    <tr>
        <th>집전화</th>
        <td><%=rs.getString("mem_hometel") %></td>
    </tr>
    <tr>
        <th>직장전화</th>
        <td><%=rs.getString("mem_comtel") %></td>
    </tr>
    <tr>
        <th>HP</th>
        <td><%=rs.getString("mem_hp") %></td>
    </tr>
    <tr>
        <th>e-mail</th>
        <td><%=rs.getString("mem_mail") %></td>
    </tr>
    <tr>
        <th>직업</th>
        <td><%=rs.getString("mem_job") %></td>
    </tr>
    <tr>
        <th>취미</th>
        <td><%=rs.getString("mem_like") %></td>
    </tr>
    <tr>
        <th>기념일</th>
        <td><%=rs.getString("mem_memorial") %></td>
    </tr>
    <tr>
        <th>마일리지</th>
        <td><%=rs.getString("mem_mileage") %></td>
    </tr>
   
    <tr>
        <th>탈퇴여부</th>
        <td><%=rs.getString("mem_delete") %></td>
    </tr>
   
    <%}
    else {
    %>
    <tr>
        <td>
            <span class="warning">
            해당 회원이 존재 하지 않습니다.
            </span>
        </td>
    </tr>
   
    <%
    }%>
    </tbody>
</table>
</div>
</body>
</html>
<%
if(rs!=null)try{rs.close();}catch(SQLException e){}
if(psmt!=null)try{psmt.close();}catch(SQLException e){}
if(conn!=null)try{conn.close();}catch(SQLException e){}
%>

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

html excel 추출 하기.& Jquery excel 추출 하기.  (0) 2012.06.16
정규표현식 공식 및 응용 .  (0) 2012.05.08
Tiles(레이아웃처리)  (0) 2012.05.08
Propertise 한글 사용  (0) 2012.05.08
POI  (0) 2012.05.08
Posted by 사라링

Tiles(레이아웃처리)

 | JSP
2012. 5. 8. 18:18

컴포지트 뷰(Composite View) 패턴을 구현한 라이브러리 중에서 현재 널리 사용되고 있는 라이브러리는 Tiles 2로서,

http://tiles.apache.org/download.html 사이트에서 최신버전을 다운로드 받을 수 있다. 현재 최신버전은 2.2.2이고 자바 5 또는 그 이상 버전에서 동작한다.

  1. 필요한 jar 파일을 WEB-INF/lib 디렉터리에 복사한다.
  2. web.xml에 초기화 코드 추가
  3. Tile 2 설정파일 작성
  4. 레이아웃 템플릿 JSP 파일 작성
  5. 템플릿을 사용하는 JSP 파일 작성

미니 코드

gate.jsp

1
2
3
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:insertDefinition name="test" />

tiles-test.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="euc-kr" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
 
<tiles-definitions>
<definition name="test" template="/container.jsp">
<put-attribute name="title" value="Hello" />
<put-attribute name="header" value="/header.jsp" />
<put-attribute name="menu" value="/side.jsp" />
<put-attribute name="content" value="/content.jsp" />
</definition>
</tiles-definitions>

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-test.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
... 
</web-app>

container.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<head>
<title><tiles:getAsString name="title" /></title>
</head>
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><tiles:insertAttribute name="header" /></td>
</tr>
<tr>
<td valign="top"><tiles:insertAttribute name="menu" /></td>
<td valign="top"><tiles:insertAttribute name="content" /></td>
</tr>
</table>
</body>
</html>

TilesDispatchServlet을 사용하면 웹 요청 URI와 동일한 이름을 같는 Definition을 바로 클라이언트에 출력할 수 있다. TilesDispatchServlet을 사용하려면 <servlet>태그를 이용해서 TilesDispatchServlet을 web.xml 파일에 등록하고, <servlet-mapping>을 이용해서 TilesDispatchServlet이 처리할 확장자를 설정하면 된다.

web.xml

1
2
3
4
5
6
7
8
9
10
<servlet>
<servlet-name>TilesDispatchServlet</servlet-name>
<servlet-class>
org.apache.tiles.web.util.TilesDispatchServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TilesDispatchServlet</servlet-name>
<url-pattern>*.tiles</url-pattern>
</servlet-mapping>

 

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

정규표현식 공식 및 응용 .  (0) 2012.05.08
기본JDBC 만들기  (0) 2012.05.08
Propertise 한글 사용  (0) 2012.05.08
POI  (0) 2012.05.08
PAGING(sql)  (0) 2012.05.08
Posted by 사라링

Propertise 한글 사용

 | JSP
2012. 5. 8. 18:17

properties 파일의 유니코드로 표현 되는 한글을 인식 시켜 보자. !

 

 

 

이클립스의 기본 Properties Editor는 한글로 바로 표현이 안되고 유니코드로 표현되므로 유니코드를 한글로 인식시킬수있는 플러그인이 필요합니다.

테스트는 이클립스 3.7.2에서 했으며 이전에 사용하던 3.4, 3.5에서도 이상없이 동작 했습니다.

1. 이클립스 메뉴의 Help->Install New Software 클릭

2. 상단의 Add버튼 클릭후 Name에는 아무이름이나 정하고 Location에는 http://propedit.sourceforge.jp/eclipse/updates 입력하고 OK 클릭

3. 목록에 Pending이라는 글이 뜨고 잠시 기다리면 저장소에서 검색된 목록이 뜨는데 

목록중 가장하단의 PropertiesEditor에 체크하고 next누르고 다음단계에서도 Next누르면서 설치.

 

4. 만약 이클립스 3.6이상을 사용중이라면 이클립스 marketplace를 이용하면 더 편하게 설치 할 수 있는데 

방법은 이 블로그의 http://kdarkdev.tistory.com/36에서 find항목의 검색어만 변경하면 되는데 검색어는 properties editor 이고 세번째에 있는 'Pe' 라는 로고를 가진 플러그인을 선택하면 된다.

 

*** 설치후 이클립스 재시작 후 에도 Properties Editor가 설정 안될경우 ***

이클립스 메뉴의 window-preferences-general-Editors-File Associations의 *.properties 찾아서 하단의 Associated editors에 PropertiesEditor를 default로 설정한다.

 

# \uc804\uc5ed \ub85c\uae45 \uc124\uc815
log4j.rootLogger=ERROR, stdout, file
# MyBatis \ub85c\uae45 \uc124\uc815...
#log4j.logger.org.apache.ibatis=DEBUG
#log4j.logger.java.sql.Connection=DEBUG
#log4j.logger.java.sql.Statement=DEBUG
#log4j.logger.java.sql.PreparedStatement=DEBUG
#log4j.logger.java.sql.ResultSet=DEBUG
# Console \ucd9c\ub825...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
# file \uc774\ub984\uc758 appender \uc124\uc815
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Threshold=INFO
log4j.appender.file.File=C:/MyTest.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p %d{ISO8601} %l] %m%n

이렇게 보이는 properties 파일이

  1. 전역 로깅 설정
    log4j.rootLogger=ERROR, stdout, file
    # MyBatis 로깅 설정...
    #log4j.logger.org.apache.ibatis=DEBUG
    #log4j.logger.java.sql.Connection=DEBUG
    #log4j.logger.java.sql.Statement=DEBUG
    #log4j.logger.java.sql.PreparedStatement=DEBUG
    #log4j.logger.java.sql.ResultSet=DEBUG
    # Console 출력...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    # file 이름의 appender 설정
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.Threshold=INFO
    log4j.appender.file.File=C:/MyTest.log
    log4j.appender.file.DatePattern='.'yyyy-MM-dd
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[%-5p %d{ISO8601} %l] %m%n
 

이렇게 보인다.

 

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

기본JDBC 만들기  (0) 2012.05.08
Tiles(레이아웃처리)  (0) 2012.05.08
POI  (0) 2012.05.08
PAGING(sql)  (0) 2012.05.08
동적쿼리문  (0) 2012.05.08
Posted by 사라링

POI

 | JSP
2012. 5. 8. 18:17

Jakarta POI

I. POI 란?

일반적으로 POI가 엑셀파일을 쓰는 컴퍼넌트로 알려져 있으나 POI는 프로젝트 이름입니다.
즉 POI는 Microsoft Format File을 액세스 할 수 있는 API를 제공합니다. (한마디로 자바에서 MS파일을 읽고 쓸수있도록 지원합니다.)


POI안에는 여러 컴퍼넌트들이 있습니다.

POIFS Microsoft의 OLE2 포맷 형식의 문서를 자바로 읽고 쓸수 있는 컴퍼넌트입니다
기본적으로 POI의 모든 컴퍼넌트들이 POIFS를 사용합니다.
HSSFMicrosoft의 엑셀파일을 읽고 쓸수 있도록 지원하는 컴퍼넌트입니다.
HWPFMicrosoft의 워드파일을 읽고 쓸수 있도록 지원하는 컴퍼넌트입니다.
이 컴퍼넌트는 디자인 초기단계입니다.
HPSFMicrosoft의 OLE2 포맷 형식의 문서 속성을 어플리케이션에서 사용 할수 있도록 지원하는 컴퍼넌트입니다.
현재 읽기 기능만 제공합니다

워드파일을 핸들링 하는 HWPF는 초기단계라 사용을 못하지만 기대는 되는군요 ^^



II. 다운로드 및 설치

 

http://poi.apache.org/download.html  드라이버 를 다운 받아 보자. 

다운로드 받으러 갑시다~!

<실제 구현 POI> 구현 POI

 

현재 2.5.1버젼입니다.

다운받은 파일을 압축을 풀면 *.jar 파일들이 있을겁니다 이 파일들을 자신의 어플리케이션 /lib/에 복사합시다


POI API http://jakarta.apache.org/poi/apidocs/index.html

Quick Guidehttp://jakarta.apache.org/poi/hssf/quick-guide.html


III. Formula(수식) 지원에 관해..

엑셀을 읽고 쓸때 수식을 지원합니다.
org.apache.poi.hssf.usermodel.HSSFCell의 setCellFormula("formulaString") 메쏘드는 스프레드시트에 수식을 추가하는데 사용되며 getCellFormula() 메소드는 수식을 대표하는 문자열을 해석하는데 사용됩니다. 하지만 엑셀에서 사용하는 수식을 모두 사용 할 수는 없습니다.


지원되는 부분
-. 셀 참조, 시트참조, 지역참조
-. 상대적 혹은 절대적 참조
-. 수연산 및 논리연산
-. 시트 혹은 매크로 함수

-. 수식 결과값 반환


부분적 지원
문자열을 포함하는 수식을 해석할 수는 있지만 문자열값을 반환하는 수식은 아직 지원하지 않습니다.

지원되지 않는 부분

-. 배열 수식
-. 1진법 수식
-. 3D 참조
-. 에러 값 (cells containing #REF's or #VALUE's)



IV. 기본객체


가장 기본이되는 객체가 다음 4가지 입니다

이름에서 무엇을 뜻하는지 대강 짐작 할 수 있겠죵?


HSSFWorkbook - 엑셀 워크북을 말합니다.
HSSFSheet - 엑셀 쉬트를 나타냅니다.
HSSFRow - 엑셀에서 특정 행입니다.
HSSFCell - 엑셀에서 특정 행에대한 특정 셀입니다


위 4가지 객체는 앞으로 계속 나올겁니다. 눈여겨 미리 봐 둡시다. @.@



V. 엑셀 읽기 예제


POSFS을 이용하여 엑셀 워크북을 생성합니다.


POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("excelfile.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(fs);



생성된 워크북을 이용하여 시트 수만큼 돌면서 엑셀 시트 하나씩을 생성합니다.


int sheetNum = workbook.getNumberOfSheets();

for (int k = 0; k < sheetNum; k++) {
   System.out.println("Sheet Number : "+k);

   System.out.println(Sheet Name : " + workbook.getSheetName(k));
   HSSFSheet sheet = workbook.getSheetAt(k);

}



생성된 시트를 이용하여 그 행의 수만큼 돌면서 행을 하나씩 생성합니다.


int rows = sheet.getPhysicalNumberOfRows();

for (int r = 0; r < rows; r++) {
   HSSFRow row   = sheet.getRow(r);

   System.out.println("Row : "+row.getRowNum());

}



역시나 생성된 행을 이용하여 그 셀의 수만큼 돌면서 셀을 하나씩 생성합니다.


int cells = row.getPhysicalNumberOfCells();

for (short c = 0; c < cells; c++) {              <--!! short 형입니다. 255개가 max!
    HSSFCell cell  = row.getCell(c);

    int celltype = cell.getCellType();

    ...

}

셀을 생성하여 셀 타입에 따라 처리를 해주면 끝~


주의사항

만약 엑셀에서 A열에 아무런 값이 없으면 그 행은 읽지 못합니다.

행을 읽지 못하니 셀또한 처리 할 수 없습니다



VI. 엑셀읽기 샘플소스


샘플 데이터


A열은 B열에 대한 셀 타입을 나타내며 C열은 D열에대한 셀 타입을 나타냅니다.즉 B:1 의 123456의 셀 타입은 A:1 일반 이라는 것이며 마찬가지로 D:1의 2005-02-09의 셀타입은 C:1 사용자정의로 세팅하였다는 겁니다

이 엑셀의 데이터를 다음 소스로 읽어 보겠습니다.

<%@ page
language="java"
contentType="text/html;charset=euc-kr"
import="java.io.*,
 org.apache.poi.poifs.filesystem.POIFSFileSystem,
 org.apache.poi.hssf.record.*,
 org.apache.poi.hssf.model.*,
 org.apache.poi.hssf.usermodel.*,
 org.apache.poi.hssf.util.*" %>

<html>
<head><title>Read example</title></head>
<body>
<%

  String excelfile = "C:\\Tomcat 5.0\\webapps\\ROOT\\example.xls";

  try {
       POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(excelfile)); 


       //워크북을 생성!                       HSSFWorkbook workbook = new HSSFWorkbook(fs);       int sheetNum = workbook.getNumberOfSheets();

       for (int k = 0; k < sheetNum; k++) {            //시트 이름과 시트번호를 추출
%>
            <br><br>
            Sheet Number <%= k %> <br>
            Sheet Name <%= workbook.getSheetName(k) %><br>
<%
            HSSFSheet sheet = workbook.getSheetAt(k);
            int rows = sheet.getPhysicalNumberOfRows();


            for (int r = 0; r < rows; r++) {                // 시트에 대한 행을 하나씩 추출
                HSSFRow row   = sheet.getRow(r);
                if (row != null) { 
                     int cells = row.getPhysicalNumberOfCells();
%>
                     ROW  <%= row.getRowNum() %> <%=cells%></b><br>
<%

                     for (short c = 0; c < cells; c++) {                        // 행에대한 셀을 하나씩 추출하여 셀 타입에 따라 처리
                         HSSFCell cell  = row.getCell(c);
                         if (cell != null) { 
                              String value = null;

                              switch (cell.getCellType()) {

                                   case HSSFCell.CELL_TYPE_FORMULA :
                                       value = "FORMULA value=" + cell.getCellFormula();
                                        break;
                                   case HSSFCell.CELL_TYPE_NUMERIC :
                                       value = "NUMERIC value=" + cell.getNumericCellValue(); //double
                                       break;
                                  case HSSFCell.CELL_TYPE_STRING :
                                       value = "STRING value=" + cell.getStringCellValue(); //String
                                       break;
                                  case HSSFCell.CELL_TYPE_BLANK :
                                      value = null;
                                     break;
                                 case HSSFCell.CELL_TYPE_BOOLEAN :
                                     value = "BOOLEAN value=" + cell.getBooleanCellValue(); //boolean
                                    break;
                                case HSSFCell.CELL_TYPE_ERROR :
                                     value = "ERROR value=" + cell.getErrorCellValue(); // byte
                                     break;
                                default :
                             }
%>         
                          <%= "CELL col=" + cell.getCellNum() + " VALUE=" + value %> <br>
<%
                        } 
                    }
                }
            }
       }
   } catch (Exception e) {
%>
       Error occurred:  <%= e.getMessage() %>
<%   
       e.printStackTrace();
    }

%>


</body>
</html>


위 소스의 결과입니다.


Sheet Number 0
Sheet Name 한글
ROW 0 4
CELL col=0 VALUE=STRING value=일반
CELL col=1 VALUE=NUMERIC value=123456.0
CELL col=2 VALUE=STRING value=사용자정의
CELL col=3 VALUE=NUMERIC value=38392.0
ROW 1 4
CELL col=0 VALUE=STRING value=숫자
CELL col=1 VALUE=NUMERIC value=123456.0
CELL col=2 VALUE=STRING value=날짜 (yy-m-d h:mm)
CELL col=3 VALUE=NUMERIC value=38393.0
ROW 2 4
CELL col=0 VALUE=STRING value=통화
CELL col=1 VALUE=NUMERIC value=123456.0
CELL col=2 VALUE=STRING value=날짜 (yy年 mm月 dd日)
CELL col=3 VALUE=NUMERIC value=38394.0
ROW 3 4
CELL col=0 VALUE=STRING value=텍스트
CELL col=1 VALUE=NUMERIC value=123456.0
CELL col=2 VALUE=STRING value=날짜 (yyyy년 mm월 dd일)
CELL col=3 VALUE=NUMERIC value=38395.0


결과를 보니 사용자가 지정한 셀 타입에 관계없이 숫자관련 셀은 POI에서 모두 숫자 타입으로 인식해 버렸습니다. 날짜 역시 지정한 셀 타입에 관계없이 모두 숫자 타입으로 인식해 버리는군요!

그럼 어떻게 날짜를 제대로 표현할까요?

날짜 타입을 제대로 나타내기 위해서는 날짜 Cell에는 getDateCellValue()를 사용하면정상적으로 처리 할 수 있습니다.

SimpleDateformat sdf = new SimpleDateformat("yyyy-MM-dd hh:mm");
String date = sdf.format(cell.getDateCellValue());

등을 이용하면 나타내고자 하는 알짜를 표현 하기 더 쉽겠지요

나머지 수식을 가져 올때도 마찬가지입니다. 이런 사항을 도표로 나타내보았습니다.


org.apache.poi.hssf.usermodel.HSSFCell 에는 모두 6가지의 Cell Type이 있는데, cell.getCellType()을 하면 그 셀의 반환값을 알 수 있으며 그에 상응하는 static 필드타입은 다음과 같습니다.

셀타입 필드타입

함수

함수반환값
0 CELL_TYPE_NUMERIC

getNumericCellValue()

-> 숫자 타입일때

getDateCellValue()

-> 날짜 타입일때

double


Date


1 CELL_TYPE_STRING

getStringCellValue()

String
2 CELL_TYPE_FORMULA

getCellFormula()

-> 수식자체를 가져올때

getNumericCellValue()

-> 수식 반환값이 숫자일때

getStringCellValue()

-> 수식 반환값이 문자일때

String


double


String

3 CELL_TYPE_BLANK



4 CELL_TYPE_BOOLEAN

getBooleanCellValue()

boolean
5 CELL_TYPE_ERROR

getErrorCellvalue()

byte

 

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

Tiles(레이아웃처리)  (0) 2012.05.08
Propertise 한글 사용  (0) 2012.05.08
PAGING(sql)  (0) 2012.05.08
동적쿼리문  (0) 2012.05.08
Multiple Parameter  (0) 2012.05.08
Posted by 사라링

PAGING(sql)

 | JSP
2012. 5. 8. 18:17

  -- 페이징 기법.  가정.
  --  총레코드 수:33      int totalRowCount = 33
  --  목록수:30          int size = 10
  --  총 페이지수 :(총레코드수 -1)/목록수 +1    int totalPageCount = (totalRowCount-1)/listSize+1
  --  현제 페이지 :3      int curPage = 3
  --  시작행 : (페이지 -1)

 

            psmt=conn.prepareStatement(sb.toString());
            int startRow = 1;
            int endRow = 10;
            if(paramMap.containsKey("startRow")){
                startRow=(Integer)paramMap.get("startRow");
            }
            if(paramMap.containsKey("endRow")){
                endRow=(Integer)paramMap.get("endRow");
            }
            psmt.setInt(1,endRow);
            psmt.setInt(2,startRow);
           
            rs=psmt.executeQuery();
           

 

페이지 가져오기 쿼리문.

  select *
  from (select rownum rn,a.*
      from (select *
          from board
          order by bo_no desc
          )a
         where rownum <=? 
      )
  where rn >=? ;

 

1, 시작 페이지 넘버

2. 마지막 페이지 넘버

 

 

 

 

 

 

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!-- 페이징 처리 수행 페이지 -->

 

<%--
 /*
 Input Parameter :
 이미지 파라미터
 1. firstPageImg : 처음으로 버튼 이미지
 2. prevPageImg : 이전 X 페이지로 이동 버튼 이미지
 3. nextPageImg : 다음 X 페이지로 이동 버튼 이미지
 4. lastpageImg : 마지막 페이지로 이동 버튼 이미지
 
 페이지 관련 이미지
 5. totalRowCount : 총 데이터 로우의 개수
 6. rowNumPerPage : 한페이지당 리스트할 로의 개수
 7. pageCount  : 한 화면에 보여질 페이지 개수 1 ~ 10, 11 ~ 20
 8. pageNo   : 페이지 번호
 9. target   : 페이징을 구분할 타겟 정보
 
 사용법
 a. 페이지 인클루드
 <jsp:include flush="true" page="./paging.jsp">
  <jsp:param name="firstPageImg" value="./images/firstImg.jpg"/>  
  <jsp:param name="prevPageImg" value="./images/prevImg.jpg"/>  
  <jsp:param name="nextPageImg" value="./images/nextImg.jpg"/>  
  <jsp:param name="lastPageImg" value="./images/lastImg.jpg"/>  
  <jsp:param name="totalRowCount" value="105"/>  
  <jsp:param name="rowNumPerPage" value="10"/>  
  <jsp:param name="pageCount" value="10"/>  
  <jsp:param name="pageNo" value="3"/>  
  <jsp:param name="target" value="TEST_PAGE"/>  
 </jsp:include>
 
 b. 자바 스크립트 작성
 <script type="text/javascript">
 <!--
  function searchByTarget(pageNo, target)
  {
   // TODO
  }
 //-->
 </script>
 */
--%>
<%
 int totalRowCount  = 1;  // 전체 로 개수
 int rowNumPerPage  = 5; //  페이지당 로의 개수
 int pageCount   = 10; // 한 화면에 보여질 페이지 번호 개수
 int pageNo    = 1; // 현재 선택된 페이지 번호
 
 String firstPageImg  = "/blog/images/bl_nv_start.gif";   // 처음 페이지 이동 이미지
 String prevPageImg  = "/blog/images/bl_nv_prev.gif";   // 이전 X 페이지 이동 이미지
 String nextPageImg  = "/blog/images/bl_nv_next.gif";   // 다음 X 페이지 이동 이미지   
 String lastPageImg  = "/blog/images/bl_nv_last.gif";   // 마지막 페이지 이동 이미지
 
 firstPageImg = request.getParameter("firstPageImg")== null ? firstPageImg : request.getParameter("firstPageImg");
 prevPageImg  = request.getParameter("prevPageImg") == null ? prevPageImg : request.getParameter("prevPageImg");
 nextPageImg  = request.getParameter("nextPageImg") == null ? nextPageImg : request.getParameter("nextPageImg");
 lastPageImg  = request.getParameter("lastPageImg") == null ? lastPageImg : request.getParameter("lastPageImg");
 
 
 String target   = request.getParameter("target");   // 페이징 구분 타겟 코드(한번에 페이징이 여러개인경우 구분해주는 기능)
 try {
  totalRowCount    = Integer.parseInt(request.getParameter("totalRowCount")); 
 } catch (NumberFormatException e) {
 }
 try {
  rowNumPerPage    = Integer.parseInt(request.getParameter("rowNumPerPage")); 
 } catch (NumberFormatException e) {
 }
 try {
  pageCount    = Integer.parseInt(request.getParameter("pageCount"));  
 } catch (NumberFormatException e) {
 }
 try {
  pageNo     = Integer.parseInt(request.getParameter("pageNo"));   
 } catch (NumberFormatException e) {
 }
 
 int lastPageNum   = (totalRowCount - 1) / rowNumPerPage + 1;   // 전체 페이지 개수
 int startPageNum   = ((pageNo - 1) / pageCount) * pageCount + 1;  // 화면에 보여질 시작 페이지 번호
 int endPageNum    = startPageNum + pageCount - 1;      // 화면에 보여질 종료 페이지 번호
 if(endPageNum > lastPageNum) endPageNum = lastPageNum;      // 종료 페이지 범위 처리
 
 int prevPageGroup = 1;
 int nextPageGroup = lastPageNum;
 
 if(startPageNum - pageCount < 1) {
  prevPageGroup = 1;
 }
 else {
  prevPageGroup = startPageNum - endPageNum; 
  if(prevPageGroup <= 0) {prevPageGroup = 1;}
 }
 
 if(endPageNum + 1 > lastPageNum) {
  nextPageGroup = lastPageNum;
 }
 else {
  nextPageGroup = endPageNum + 1;
 }
%>

 

<!-- 처음 페이지로 이동-->
<a href="javascript:searchByTarget('1', '<%=target %>');">
 <img src="<%=firstPageImg %>" border="0" alt="처음 페이지" align="absmiddle">
</a>

 

<!-- 이전 X 페이지 이동 -->
<a href="javascript:searchByTarget('<%=prevPageGroup %>', '<%=target %>');">
 <img src="<%=prevPageImg %>" border="0" alt="이전 <%=pageCount %>페이지" align="absmiddle">
</a>

 

<!-- 페이지 번호 표시 -->
<%
 for (int i = startPageNum; i <= endPageNum; i++) {
  if (i == pageNo) {
%>
  <font color="RED"><b><%=i %></b></font> |
<%
  }
  else {
%>
  <a href="javascript:searchByTarget('<%=i %>', '<%=target %>');">
   <font color="NAVY"><%=i %></font>
  </a>|
<%
  }  
 }
%>

 

<!-- 다음 X 페이지 이동 -->
<a href="javascript:searchByTarget('<%=nextPageGroup %>', '<%=target %>');">
 <img src="<%=nextPageImg %>" border="0" alt="다음 <%=pageCount %>페이지" align="absmiddle">
</a>

 

<!-- 마지막 페이지 이동 -->
<a href="javascript:searchByTarget('<%=lastPageNum %>', '<%=target %>');">
 <img src="<%=lastPageImg %>" border="0" alt="마지막  페이지" align="absmiddle">
</a>

 


첨부파일 내용 다운로드 :

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

Propertise 한글 사용  (0) 2012.05.08
POI  (0) 2012.05.08
동적쿼리문  (0) 2012.05.08
Multiple Parameter  (0) 2012.05.08
log4j구현환경제공.  (0) 2012.05.08
Posted by 사라링

동적쿼리문

 | JSP
2012. 5. 8. 18:17

iBatis 에서 mybatis 로 바뀌면서 바뀐것들 중에 하나가 동적쿼리문에서 쓰는 태그들이다.

iBatis 에 있던 <isEqual/> <isNotEqual/> 요런 것들이

mybatis 에서는 <if test="xxx == 'a'"></if> <if test="xxx != 'a'"></if> 요렇게 대체할 수 있어서 쫌더 간결해 진것 같다.

 

그런데 test="" 요기에서 쓸수 있는 비교연산자들 중에는 null 인지 빈 공백인지 판단하던 <isEmpty/>, <isNotEmpty/> 를 대체할만한 비교연산자가 없었다.

null 인지 공백인지 mybatis 에서 판단하기 위해서는

1
<if test="xxx == null or xxx == ''"></if>

 

 

 

 

 

어째 다른 방법이 없나 쭉 찾아보니까~ 신기하게도 조건문에서 자바 클래스의 메소드를 호출해서 하는 방법이 있었다.

 

클래스를 하나 맨들고 거기에다 boolean 을 리턴해주는 static 메소드들을 뽓 맨들고 고것을 호출하는 방식이다.

내가 작성해본 클래스는 요렇다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package stove99.tistory.com;
 
import java.lang.reflect.Array;
import java.util.List;
import java.util.Map;
 
public class MyComparator {
public static boolean isEmpty(Object obj){
if( obj instanceof String ) return obj==null || "".equals(obj.toString().trim());
else if( obj instanceof List ) return obj==null || ((List)obj).isEmpty();
else if( obj instanceof Map ) return obj==null || ((Map)obj).isEmpty();
else if( obj instanceof Object[] ) return obj==null || Array.getLength(obj)==0;
else return obj==null;
}
public static boolean isNotEmpty(String s){
return !isEmpty(s);
}
}



죠렇게 맨든 클래스를 땡겨다 쓰는 mabatis sql xml 예제는 요렇다.

1
2
3
4
5
6
7
8
9
<select id="testSQL" parameterType="map" resultType="hashmap">
SELECT * FROM TB_TEST
WHERE
1=1
<!-- @패키지.클래스명@호출할메소드(파라메터) -->
<if test="@stove99.tistory.com.MyComparator@isEmpty(keyword)">
AND KEYWORD = #{keyword}
</if>
</select>

@패키지명.클래스@메소드 요렇게 호출해야 되기 때문에 패키지나 클래스명은 간단하게 명명하면 좋을것 같다.

이 글은 스프링노트에서 작성되었습니다.


'JSP' 카테고리의 다른 글

POI  (0) 2012.05.08
PAGING(sql)  (0) 2012.05.08
Multiple Parameter  (0) 2012.05.08
log4j구현환경제공.  (0) 2012.05.08
MyBatis (odbc프레임웍)  (0) 2012.05.08
Posted by 사라링

BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
디자인패턴 (1)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
웹스퀘어_ (0)
Total :
Today : Yesterday :