반응형


네이버 메모 앱 하단으로 스크롤 할때 마다 

하나씩 글을 불러오는 기능이 좋아보임..

키워드를 모르겠다.. 

안드로이드에서만 되는건지 웹에서도 가능한건지..



스크롤 하단에서 100px 정도 이동하면 아래에 append 로 붙이면 될꺼 같은데 소스 찾기가 쉽지 않음 ㅠㅠ



http://greensock.com/examples-showcases ( 시간차를 두면서 이용하는 스크립트)


http://jsfiddle.net/inspired_jw/KCC8V/1/ (하단에 왔을때 체크하는 소스)

반응형
반응형


HTML 은 그냥 xls로 확장자만 변환하여 다운받게 하였더니

액셀 에서 읽을때 오류가 발생... web페이지로 인식하는듯..


그래서 poi 이용 다운로드 찾아봄...


1. 서블릿 예제 입니다.

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=filename.xls");
HSSFWorkbook workbook = new HSSFWorkbook();
// ...
// Now populate workbook the usual way.
// ...
workbook.write(response.getOutputStream()); // Write workbook to response.
workbook.close();


2. JSP 예제 입니다.

<%@page import="org.apache.poi.hssf.usermodel.*" %><%@page import="java.io.*" %><%

// create a small spreadsheet
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("Some text");

// write it as an excel attachment
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
wb.write(outByteStream);
byte [] outArray = outByteStream.toByteArray();
response.setContentType("application/ms-excel");
response.setContentLength(outArray.length);
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Content-Disposition", "attachment; filename=testxls.xls");
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();

%>

출처

http://okky.kr/article/279848

반응형
반응형

우선 weblogic 다운 받아 설치..


http://www.oracle.com/kr 여기가서 미들웨어 weblogic 포함 다운받는다


여기 자세한 설명 

http://roadrunner.tistory.com/415


그냥그냥 담담 설치 후


How to install and setup Oracle Weblogic + Eclipse - Part 1 of 2




굿 설명


다이내믹 웹 생성후 


servlet 테스트


내가 사용한  web.xml


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 

id="WebApp_ID" version="3.0">


<servlet>
    <servlet-name>helloworld</servlet-name>
    <servlet-class>servlettest.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>



서블릿 테스트 참고한 곳

http://levin01.tistory.com/28



http://localhost:7001/com.youtube/  index.jsp 로딩 테스트


http://localhost:7001/com.youtube.hems/servlet  서블릿 호출 테스트


아오 이제 하나하나 붙이는 작업이 남았음  ㅠㅜ 기본 테스트는 완료 



반응형
반응형

<!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>Flick Navigation</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />


<style type="text/css">


/* Basic Style START (dohoons, 200803, 200908, 201011, 201106) */

html, body { height:100%; -webkit-text-size-adjust:none; }

body, input, select, button, textarea, h1, h2, h3, h4, h5, h6, table { font:normal 12px/1.5 dotum,"돋움",Arial,AppleGothic,Sans-serif; color:#666; }

html, body, div, form, input, select, button, textarea, legend, fieldset, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, blockquote, address, p, th, td, caption { margin:0; padding:0; }

ol, ul, li { list-style:none; }

img, fieldset { border:0 none; }

input, select, textarea { vertical-align:middle; resize:none; position:relative; }

input, textarea { -webkit-appearance:none; -webkit-border-radius:0; }

input[type="checkbox"] { -webkit-appearance:checkbox; }

input[type="radio"] { -webkit-appearance:radio; -webkit-border-radius:10px; }

button { border:0 none; background:transparent; cursor:pointer; }

hr { display:none; }

legend, .hide { width:0; height:0; visibility:hidden; font-size:0; line-height:0; position:absolute; top:0; left:0; overflow:hidden; }

table caption { width:0; height:0; visibility:hidden; text-indent:-9999px; font-size:0; line-height:0; }

table { border-collapse:collapse; border-spacing:0; }

header, footer, section, article, aside, nav, hgroup, details, menu, figure, figcaption { display:block; }


a:link, a:visited { text-decoration:none; color:#666; }

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


input.basic { height:19px; line-height:19px; padding:0 5px; border:1px solid #cacaca; *margin-top:-1px; _margin-top:-2px; }

textarea.basic { border:1px solid #cacaca; padding:5px; overflow:scroll; overflow-x:hidden; *margin-top:-1px; _margin-top:-2px; }

select.basic { height:21px; }

/* Basic Style END */


#touchSlider6 { width:100%; height:150px; margin:0 auto; background:#ccc; position:relative; overflow:hidden; }

#touchSlider6 ul { width:99999px; height:150px; position:absolute; top:0; left:0; overflow:hidden; }

#touchSlider6 ul li { float:left; width:100%; height:150px; background:#9C9; font-size:14px; color:#fff; }



.btn_area { background:#f5f5f5; overflow:hidden; }

.btn_area button { display:block; width:100px; height:36px; background:#000; font-size:16px; color:#fff; font-weight:bold; }

.btn_area button.btn_prev { float:left; }

.btn_area button.btn_next { float:right; }

.btn_area .btn_page { display:inline-block; width:10px; height:10px; margin:3px; font-size:0px; line-height:0; text-indent:-9999px; background:#3399CC; }

.btn_area .btn_page.on { background:#ff0000; }



</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

<script type="text/javascript" src="../js/jquery.event.drag-1.5.min.js"></script>

<script type="text/javascript" src="../js/jquery.touchSlider.js"></script>

<script type="text/javascript">


  $(document).ready(function() {



$("#touchSlider6").touchSlider({


flexible : true,

initComplete : function (e) {

$("#touchSlider6_paging").html("");

var num = 1;

$("#touchSlider6 ul li").each(function (i, el) {

if((i+1) % e._view == 0) {

$("#touchSlider6_paging").append('<button type="button" class="btn_page">page' + (num++) + '</button>');

}

});

$("#touchSlider6_paging .btn_page").bind("click", function (e) {

var i = $(this).index();

$("#touchSlider6").get(0).go_page(i);

});

},

counter : function (e) {

$("#touchSlider6_paging .btn_page").removeClass("on").eq(e.current-1).addClass("on");

}

});


});

</script>


 </head>


 <body>


  <h2>6 : flexible, rolling, paging, counter</h2>

<div id="touchSlider6">

<ul>

<li>

content 1

</li>

<li style="background:#396">

content 2

</li>

<li style="background:#39C">

content 3

</li>

<li style="background:#33C">

content 4

</li>

</ul>

</div>


<div id="touchSlider6_paging" class="btn_area" style="text-align:center;"></div>



 </body>

</html>



jquery.event.drag-1.5.min.js


/* 

jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)  

Liscensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt

*/

(function(E){E.fn.drag=function(L,K,J){if(K){this.bind("dragstart",L)}if(J){this.bind("dragend",J)}return !L?this.trigger("drag"):this.bind("drag",K?K:L)};var A=E.event,B=A.special,F=B.drag={not:":input",distance:0,which:1,dragging:false,setup:function(J){J=E.extend({distance:F.distance,which:F.which,not:F.not},J||{});J.distance=I(J.distance);A.add(this,"mousedown",H,J);if(this.attachEvent){this.attachEvent("ondragstart",D)}},teardown:function(){A.remove(this,"mousedown",H);if(this===F.dragging){F.dragging=F.proxy=false}G(this,true);if(this.detachEvent){this.detachEvent("ondragstart",D)}}};B.dragstart=B.dragend={setup:function(){},teardown:function(){}};function H(L){var K=this,J,M=L.data||{};if(M.elem){K=L.dragTarget=M.elem;L.dragProxy=F.proxy||K;L.cursorOffsetX=M.pageX-M.left;L.cursorOffsetY=M.pageY-M.top;L.offsetX=L.pageX-L.cursorOffsetX;L.offsetY=L.pageY-L.cursorOffsetY}else{if(F.dragging||(M.which>0&&L.which!=M.which)||E(L.target).is(M.not)){return }}switch(L.type){case"mousedown":E.extend(M,E(K).offset(),{elem:K,target:L.target,pageX:L.pageX,pageY:L.pageY});A.add(document,"mousemove mouseup",H,M);G(K,false);F.dragging=null;return false;case !F.dragging&&"mousemove":if(I(L.pageX-M.pageX)+I(L.pageY-M.pageY)<M.distance){break}L.target=M.target;J=C(L,"dragstart",K);if(J!==false){F.dragging=K;F.proxy=L.dragProxy=E(J||K)[0]}case"mousemove":if(F.dragging){J=C(L,"drag",K);if(B.drop){B.drop.allowed=(J!==false);B.drop.handler(L)}if(J!==false){break}L.type="mouseup"}case"mouseup":A.remove(document,"mousemove mouseup",H);if(F.dragging){if(B.drop){B.drop.handler(L)}C(L,"dragend",K)}G(K,true);F.dragging=F.proxy=M.elem=false;break}return true}function C(M,K,L){M.type=K;var J=E.event.handle.call(L,M);return J===false?false:J||M.result}function I(J){return Math.pow(J,2)}function D(){return(F.dragging===false)}function G(K,J){if(!K){return }K.unselectable=J?"off":"on";K.onselectstart=function(){return J};if(K.style){K.style.MozUserSelect=J?"":"none"}}})(jQuery);



jquery.touchSlider.js


/**

 * @name jQuery.touchSlider

 * @author dohoons ( http://dohoons.com/ )

 *

 * @version 201504

 * @since 201106

 *

 * @param Object settings 환경변수 오브젝트

 * roll - 순환 (default true)

 * flexible - 유동 레이아웃 (default false)

 * view - 다중 컬럼 (default 1)

 * speed - 애니메이션 속도 (default 75)

 * range - 넘김 판정 범위 (default 0.15)

 * page - 초기 페이지 (default 1)

 * transition - CSS3 transition 사용 (default true)

 * btn_prev - prev 버튼 (jQuery Object, default null)

 * btn_next - next 버튼 (jQuery Object, default null)

 * paging - page 버튼 (jQuery Object, default null)

 * initComplete - 초기화 콜백

 * counter - 슬라이드 콜백, 카운터

 *

 * @example

 

$("#target").touchSlider({

flexible : true

});


*/


(function ($) {

$.fn.touchSlider = function (settings) {

settings.supportsCssTransitions = (function (style) {

var prefixes = ['Webkit','Moz','Ms'];

for(var i=0, l=prefixes.length; i < l; i++ ) {

if( typeof style[prefixes[i] + 'Transition'] !== 'undefined') {

return true;

}

}

return false;

})(document.createElement('div').style);

settings = jQuery.extend({

roll : true,

flexible : false,

btn_prev : null,

btn_next : null,

paging : null,

speed : 75,

view : 1,

range : 0.15,

page : 1,

transition : true,

initComplete : null,

counter : null

}, settings);

var opts = [];

opts = $.extend({}, $.fn.touchSlider.defaults, settings);

return this.each(function () {

var _this = this;

$.fn.extend(this, touchSlider);

this.opts = opts;

this.init();

$(window).bind("orientationchange resize", function () {

_this.resize(_this);

});

});

};

var touchSlider = {

init : function () {

var _this = this;

this._view = this.opts.view;

this._speed = this.opts.speed;

this._tg = $(this);

this._list = this._tg.children().children();

this._width = parseInt(this._tg.css("width"));

this._item_w = parseInt(this._list.css("width"));

this._len = this._list.length;

this._range = this.opts.range * this._width;

this._pos = [];

this._start = [];

this._startX = 0;

this._startY = 0;

this._left = 0;

this._top = 0;

this._drag = false;

this._scroll = false;

this._btn_prev;

this._btn_next;

$(this)

.unbind("touchstart", this.touchstart)

.unbind("touchmove", this.touchmove)

.unbind("touchend", this.touchend)

.unbind("dragstart", this.touchstart)

.unbind("drag", this.touchmove)

.unbind("dragend", this.touchend)

.bind("touchstart", this.touchstart)

.bind("touchmove", this.touchmove)

.bind("touchend", this.touchend)

.bind("dragstart", this.touchstart)

.bind("drag", this.touchmove)

.bind("dragend", this.touchend)

$(this).children().css({

"width":this._width + "px",

"overflow":"visible"

});

if(this.opts.flexible) this._item_w = this._width / this._view;

if(this.opts.roll) {

if(this._len % this._view > 0) {

var blank = $(document.createElement(this._list.eq(0).eq(0).prop("tagName"))).hide();

var cnt = this._view - (this._len % this._view);

for(var i=0; i<cnt; ++i) {

this._list.parent().append(blank.clone());

}

}

this._list = this._tg.children().children();

this._len = this._list.length;

this._len = (this._len / this._view) * this._view;

}

var page_gap = (this.opts.page > 1 && this.opts.page <= this._len) ? (this.opts.page - 1) * this._item_w : 0;

for(var i=0; i<this._len; ++i) {

this._pos[i] = this._item_w * i - page_gap;

this._start[i] = this._pos[i];

this._list.eq(i).css({

"float" : "none",

"position" : "absolute",

"top" : "0",

"left" : this._pos[i] + "px",

"width" : this._item_w + "px"

});

if(this.opts.supportsCssTransitions && this.opts.transition) {

this._list.eq(i).css({

"-moz-transition" : "0ms",

"-moz-transform" : "",

"-ms-transition" : "0ms",

"-ms-transform" : "",

"-webkit-transition" : "0ms",

"-webkit-transform" : "",

"transition" : "0ms",

"transform" : ""

});

}

}

if(this.opts.btn_prev && this.opts.btn_next) {

this.opts.btn_prev.unbind("click").bind("click", function() {

_this.animate(1, true);

return false;

})

this.opts.btn_next.unbind("click").bind("click", function() {

_this.animate(-1, true);

return false;

});

}

if(this.opts.paging) {

$(this._list).each(function (i, el) {

var btn_page = _this.opts.paging.eq(0).clone();

_this.opts.paging.before(btn_page);

btn_page.bind("click", function(e) {

_this.go_page(i, e);

return false;

});

});

this.opts.paging.remove();

}

this.initComplete();

this.counter();

},

initComplete : function () {

if(typeof(this.opts.initComplete) == "function") {

this.opts.initComplete(this);

}

},

resize : function (e) {

if(e.opts.flexible) {

var tmp_w = e._item_w;

e._width = parseInt(e._tg.css("width"));

e._item_w = e._width / e._view;

e._range = e.opts.range * e._width;

for(var i=0; i<e._len; ++i) {

e._pos[i] = e._pos[i] / tmp_w * e._item_w;

e._start[i] = e._start[i] / tmp_w * e._item_w;

e._list.eq(i).css({

"left" : e._pos[i] + "px",

"width" : e._item_w + "px"

});

if(this.opts.supportsCssTransitions && this.opts.transition) {

e._list.eq(i).css({

"-moz-transition" : "0ms",

"-moz-transform" : "",

"-ms-transition" : "0ms",

"-ms-transform" : "",

"-webkit-transition" : "0ms",

"-webkit-transform" : "",

"transition" : "0ms",

"transform" : ""

});

}

}

}

this.counter();

},

touchstart : function (e) {

if((e.type == "touchstart" && e.originalEvent.touches.length <= 1) || e.type == "dragstart") {

this._startX = e.pageX || e.originalEvent.touches[0].pageX;

this._startY = e.pageY || e.originalEvent.touches[0].pageY;

this._scroll = false;

this._start = [];

for(var i=0; i<this._len; ++i) {

this._start[i] = this._pos[i];

}

}

},

touchmove : function (e) {

if((e.type == "touchmove" && e.originalEvent.touches.length <= 1) || e.type == "drag") {

this._left = (e.pageX || e.originalEvent.touches[0].pageX) - this._startX;

this._top = (e.pageY || e.originalEvent.touches[0].pageY) - this._startY;

var w = this._left < 0 ? this._left * -1 : this._left;

var h = this._top < 0 ? this._top * -1 : this._top;

if (w < h || this._scroll) {

this._left = 0;

this._drag = false;

this._scroll = true;

} else {

if ( navigator.userAgent.indexOf("android 4.1") > -1 ) {

e.stopPropagation();

} else {

e.preventDefault();

}

this._drag = true;

this._scroll = false;

this.position(e);

}

for(var i=0; i<this._len; ++i) {

var tmp = this._start[i] + this._left;

if(this.opts.supportsCssTransitions && this.opts.transition) {

var trans = "translate3d(" + tmp + "px,0,0)";

this._list.eq(i).css({

"left" : "",

"-moz-transition" : "0ms",

"-moz-transform" : trans,

"-ms-transition" : "0ms",

"-ms-transform" : trans,

"-webkit-transition" : "0ms",

"-webkit-transform" : trans,

"transition" : "0ms",

"transform" : trans

});

} else {

this._list.eq(i).css("left", tmp + "px");

}

this._pos[i] = tmp;

}

}

},

touchend : function (e) {

if((e.type == "touchend" && e.originalEvent.touches.length <= 1) || e.type == "dragend") {

if(this._scroll) {

this._drag = false;

this._scroll = false;

return false;

}

this.animate(this.direction());

this._drag = false;

this._scroll = true;

}

},

position : function (d) { 

var gap = this._view * this._item_w;

if(d == -1 || d == 1) {

this._startX = 0;

this._start = [];

for(var i=0; i<this._len; ++i) {

this._start[i] = this._pos[i];

}

this._left = d * gap;

} else {

if(this._left > gap) this._left = gap;

if(this._left < - gap) this._left = - gap;

}

if(this.opts.roll) {

var tmp_pos = [];

for(var i=0; i<this._len; ++i) {

tmp_pos[i] = this._pos[i];

}

tmp_pos.sort(function(a,b){return a-b;});

var max_chk = tmp_pos[this._len-this._view];

var p_min = $.inArray(tmp_pos[0], this._pos);

var p_max = $.inArray(max_chk, this._pos);

if(this._view <= 1) max_chk = this._len - 1;

if((d == 1 && tmp_pos[0] >= 0) || (this._drag && tmp_pos[0] > 0)) {

for(var i=0; i<this._view; ++i, ++p_min, ++p_max) {

this._start[p_max] = this._start[p_min] - gap;

this._list.eq(p_max).css("left", this._start[p_max] + "px");

}

} else if((d == -1 && tmp_pos[max_chk] <= 0) || (this._drag && tmp_pos[max_chk] <= 0)) {

for(var i=0; i<this._view; ++i, ++p_min, ++p_max) {

this._start[p_min] = this._start[p_max] + gap;

this._list.eq(p_min).css("left", this._start[p_min] + "px");

}

}

} else {

if(this.limit_chk()) this._left = this._left / 2;

}

},

animate : function (d, btn_click) {

if(this._drag || !this._scroll || btn_click) {

var _this = this;

var speed = this._speed;

if(btn_click) this.position(d);

var gap = d * (this._item_w * this._view);

if(this._left == 0 || (!this.opts.roll && this.limit_chk()) ) gap = 0;

this._list.each(function (i, el) {

_this._pos[i] = _this._start[i] + gap;

if(_this.opts.supportsCssTransitions && _this.opts.transition) {

var transition = speed + "ms";

var transform = "translate3d(" + _this._pos[i] + "px,0,0)";

if(btn_click) transition = "0ms";

$(this).css({

"left" : "",

"-moz-transition" : transition,

"-moz-transform" : transform,

"-ms-transition" : transition,

"-ms-transform" : transform,

"-webkit-transition" : transition,

"-webkit-transform" : transform,

"transition" : transition,

"transform" : transform

});

} else {

$(this).animate({"left": _this._pos[i] + "px"}, speed);

}

});

this.counter();

}

},

direction : function () { 

var r = 0;

if(this._left < -(this._range)) r = -1;

else if(this._left > this._range) r = 1;

if(!this._drag || this._scroll) r = 0;

return r;

},

limit_chk : function () {

var last_p = parseInt((this._len - 1) / this._view) * this._view;

return ( (this._start[0] == 0 && this._left > 0) || (this._start[last_p] == 0 && this._left < 0) );

},

go_page : function (i, e) {

var crt = ($.inArray(0, this._pos) / this._view) + 1;

var cal = crt - (i + 1);

while(cal != 0) {

if(cal < 0) {

this.animate(-1, true);

cal++;

} else if(cal > 0) {

this.animate(1, true);

cal--;

}

}

},

get_page : function () {

return {

total : Math.ceil(this._len / this._view),

current : ($.inArray(0, this._pos) / this._view) + 1

}

},

counter : function () {

if($.inArray(0, this._pos) < 0) {

this.init();

}

this.opts.page = this.get_page().current;

if(typeof(this.opts.counter) == "function") {

this.opts.counter(this.get_page());

}

}

};


})(jQuery);



출처 http://dohoons.com/test/flick/



반응형
반응형

아무래 해도 import 가 안되어서 


혹시 하고 폴더명 한글로 된걸 영문으로 하니 바로 불러온다 ...


아오 ㅠㅠ


폴더명 한글로 하지 마세용~

반응형
반응형


resin was 를 사용중에 


404는 코드 받아서 커스텀 애러페이지로 이동 요청


web.xml 에


   <error-page>

     <error-code>404</error-code>

    <location>/file_not_found.jsp</location>

  </error-page>


로 설정하면 모두다 된다고 했는데 

윈도우 서버에서 기본으로 뿌려주는 404 페이지로 이동 ..


폭풍 검색해보니 


커스텀 페이지 (이동하는 애러페이지) 가 1KB 이하면 기본 윈도우 404 페이지 노출 됨


안에 내용을 좀더 넣어서 1kb 이상으로 만들면 정상 이동한다


요약 

커스텀 애러 페이지는 1KB 이상으로 만들자.  


아오 내 1시간 ~!!!!

반응형
반응형




<!DOCTYPE html>

<html xml:lang="ko" lang="ko">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />

<meta name="apple-mobile-web-app-capable" content="yes" />

<title>KOMVO</title>


<link rel="stylesheet" type="text/css" href="../css/base.css"/>    

<link rel="stylesheet" type="text/css" href="../css/common.css"/>


<script type="text/javascript" src="../js/jquery-1.10.2.min.js"></script>

<script type="text/javascript" src="../js/komvo-ui.js"></script>


<!-- Link Swiper's CSS -->

<link rel="stylesheet" href="../css/swiper.css">


<!-- Demo styles -->

<style>

.swiper-container {

width: 100%;

height: 100%;

}

.swiper-container-horizontal>.swiper-pagination { position:relative; top:0; right:0%; height:24px; border-bottom:1px solid #e2e3e4; overflow:hidden; }

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet {margin:0 24px;}

.swiper-pagination-clickable .swiper-pagination-bullet { background:#ff0000; height:24px; margin:0 24px; }

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet { height:12px; margin-top:8px; background:url(../images/mnu_sub.png) no-repeat; background-size:500px auto; border-radius:0; }

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(1) {width:64px; background-position:0 0;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(2) {width:49px; background-position:-111px 0;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(3) {width:98px; background-position:-208px 0;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(4) {width:60px; background-position:-354px 0;}


.swiper-pagination-bullet-active {opacity:100%;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(1).swiper-pagination-bullet-active {background-position:0 -15px;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(2).swiper-pagination-bullet-active {background-position:-111px -15px;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(3).swiper-pagination-bullet-active {background-position:-208px -15px;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(4).swiper-pagination-bullet-active {background-position:-354px -15px;}



.swiper-wrapper {height:100%; min-height:480px; }

.swiper-slide {

background: #fff;

/* Center slide text vertically */

display: -webkit-box;

display: -ms-flexbox;

display: -webkit-flex;

display: flex;

-webkit-box-pack: center;

-ms-flex-pack: center;

-webkit-justify-content: center;

justify-content: center;

-webkit-box-align: center;

-ms-flex-align: center;

-webkit-align-items: center;

align-items: center;

}


.subContent .cds_h2 { height:50px; overflow:hidden; }

.subContent .sector {background:url(../images/mnu_sub.png); background-size:500px 28px; }

.subContent .sector.smnu01 {background-position:0 0;}

.subContent .sector.smnu02 {background-position:112px 0;}

.subContent .sector.smnu03 {background-position:208px 0;}


.loadingOn {

background : url(../images/komvo_Loding1.gif) 0 0 no-repeat;

-webkit-background-size : 28px 12px;

background-size : 28px 12px;

}

.loadingOff {

background : url(../images/komvo_Loding2.gif) 0 0 no-repeat;

-webkit-background-size : 28px 12px;

background-size : 28px 12px;

}

.hr_ld {margin:20px 0; overflow:hidden;}

.loadingOn,

.loadingOff {text-align:center;display:block; height:12px; background-position:50% 50%; }


.loadingOn em,

.loadingOff em {border:0; position:absolute; top:-10000px; left:-10000px; height:1px;font-size:1px; line-height:1px;}

</style>

<script>


var result_json="";

var renult_nextPage="";

var result_nextValue="";

var isComplete = false;

var lank =0;


$(document).ready(function(){

fn_load("0");  

});


fn_load = function(type){

// 마지막 데이타 체크

if ( type != "0" && renult_nextPage == undefined ){


alert('더이상 데이타가 없습니다.'); 

return;

}


$.ajax({

url: "https://www.googleapis.com/youtube/v3/playlistItems?"

+ [

"part=snippet",

"playlistId=PLSJkNdQGrU_z6TaXcxywg11bUKe6JFL71",

"order=date",

"maxResults=10",

"pageToken="+renult_nextPage,

"key=AIzaSyApAIIzHW07iHsS1z_ON4fLC_IAHy4sp64"

].join("&"),

dataType: "jsonp",

success: function(data){


result_json = data.items;

renult_nextPage = data.nextPageToken;


if(result_json.length >0)

{



for(i=0;i<result_json.length;i++){

//alert(result_json[i].id.videoId);

//alert(result_json[i].snippet.channelTitle);

lank = lank + 1;


var result_Value="<div class='wrp_cds'><div class='cds'>"; 

result_Value= result_Value + "<div class='cds_addition'>";

result_Value= result_Value + "<object type='text/html' data='http://www.youtube.com/embed/" + result_json[i].snippet.resourceId.videoId +"' allowFullScreen></object>";

result_Value= result_Value + "</div>";

result_Value= result_Value + "</div></div>";

$("#now").append(result_Value);


/*

var result_Value="<div class='wrp_cds'><div class='cds'>"; 

result_Value= result_Value + "<div class='cds_addition'><img data-src='"+result_json[i].snippet.thumbnails.high.url+"' width='100%' alt='' src='"+result_json[i].snippet.thumbnails.high.url+"'>"+lank+"</div>";

result_Value= result_Value + "<div class='cds_explain'><h2 class='cds_h2'><a href='play_jw.html?v=" + result_json[i].id.videoId + "&title=" + escape(result_json[i].snippet.title) + "'  >" + result_json[i].snippet.title +"</a></h2></div>";

result_Value= result_Value + "<div class='cds_bundle'><a href='play_jw.html?v=" + result_json[i].id.videoId + "&title=" + escape(result_json[i].snippet.title) + "' class='cds_send _MM_SHARE'  ><span class='imh im_send'>33,636,054 views</span></a></div><a href='#' class='cds_a' ><div><span class='blind'>"+result_json[i].snippet.publishedAt +"</span></div></a>";

result_Value= result_Value + "</div></div>";

*/

//console.log(result_Value);

//alert(result_Value);


//$("#now").append(result_Value);


}

}

}

});

}

// 하단 스크롤 데이타 append

$(document).ready(function (event){


$(window).scroll(function(){


var scrollHeight = $(window).scrollTop() + $(window).height();


var documentHeight = $(document).height();


//스크롤이 맨아래로 갔는지 아닌지 확인하는 if문


if(scrollHeight == documentHeight){

fn_load("2")

}


});


});


</script>

<!-- Swiper JS -->

<script src="../js/swiper.min.js"></script>


<!-- Initialize Swiper -->

<script>

var swiper = new Swiper('.swiper-container', {

pagination: '.swiper-pagination',

paginationClickable: true,

spaceBetween: 30,

});

</script>

</head>

<body>



<nav class="snb">

<div class="container">

<ul class="menuList">

<li><a href="#none">Home</a></li>

<li><a href="#none">TV Program</a></li>

<li><a href="#none" class="on">Entertainment</a></li>

<li><a href="#none">Fan’s Video</a></li>

<li><a href="#none">Favorite</a></li>

</ul>

<div class="userCtrlWrap">

<div class="setting">

<a href="#">Settings</a>

</div>

</div>

</div>

</nav>

<div id="wrap">

<header>

<div class="top">

<a href="#" class="btnMenu jsNavSnb">목록</a>

<!-- SubPage -->

<h1><a href="#"><span class="tit">TV Program</span></a></h1>

<a href="#" class="orderP">Popular</a>

<!-- 

<a href="#" class="orderP on">Popular</a>

<a href="#" class="orderL">Latest</a>

<a href="#" class="orderL on">Latest</a>

-->


<!-- MainPage Only  -->

<!-- <h1><a href="#"><span class="logo">KOMVO  logo</span></a></h1> -->


<a href="#" onclick="javascript:openLayerPop1(0);return false;" class="btnSearch">Search</a>


<div class="laypopup inPop search">

<!-- Search -->

<div class="search_form" id="form_base">

<label>Search</label>

<div class="fit-textinput-unit">

<input type="text" placeholder="Search Artists or Videos" >

<div class="fit-clear-btn"><a href="#">Delete</a></div>

</div>

</div>

<!--// Search -->

</div>


</div>

</header>


<div id="content" class="subContent">


<div id="contWrap">


<!-- flicking view start -->


<div class="swiper-container">


<div class="swiper-pagination"></div>


<div class="swiper-wrapper">

<div class="swiper-slide">


<div id="now" class="wrap id_now"></div>


</div>

<div class="swiper-slide">Slide 2</div>

<div class="swiper-slide">Slide 3</div>

<div class="swiper-slide">Slide 4</div>

</div>


</div>


<!-- flicking view End -->

</div>

</div>


<div id="footer">

<a href="#" class="spr btnTop">Top</a>

</div>


</div>


</body>

</html>

반응형
반응형

컨테이너 

생성 > 설정 > 사용 > 종료  순서


//생성 

AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationCTX.xml");  


// 설정 // 사용

Student student1 = ctx.getBean("student1", Student.class);

System.out.println("이름 : " + student1.getName());

System.out.println("나이 : " + student1.getAge());

System.out.println("취미 : " + student1.getHobbys());

System.out.println("키 : " + student1.getHeight());

System.out.println("몸무게 : " + student1.getWeight());

// 종료

ctx.close();


스프링 빈 생명주기


컨테이너가 종료 되면 빈 생명도 끝


빈 막 삭제하고 싶으면 

빈아이디.destory();

ex) student1.destory();


스프링 빈 스코프( scope )

scope="singleton"

객체는 같지만 안에 속성값은 다를 수 있다.


반응형
반응형


우선 귀찮아서 ... get 으로 넘길려는거 부터 고생시작 ;;


검색결과를 리스트에서 부터 상세 화면 까지 쑤욱 따라가다 

상세화면에서 어떤 액션처리 하고 리스트 화면으로 돌아갈때 


처음 검색했던 파라미터값을 리스트에 그대로 다시 적용 시켜주는 작업 요청...


처음엔 그냥  SearchList 메소드로  파라미터 값을 던질려고 했다..


그런데 받는게 요청하는게 많고 form 값을 새로 캐스팅 하고 뭔가 복잡했다.. 


근데 그냥 분석해서 그걸로 할껄 후회중 ㅋㅋ


리스트에서 상세로 이동할때 

입력했던 검색값 뭐 지역 / 부서 / 검색키워드  이정도였다


3개를 따로 스크립트 post 로 전송하여



상세 화면에서 히든으로 저장시켜두고


상세화면에서 저장 / 반려 등 액션을 취한후


리스트로 이동시 상세화면 히든값을 


list?지역=seoul&부서=1&검색키워드=한글한글 요케 전달하는 아주 단순하게 구현했다..


그런데... 검색키워드 한글이 문제..


아오 짜증 한글이 자꾸 깨져서 넘어옴


그래서 이것 저것 해보다. list?지역=seoul&부서=1&검색키워드=URLEncoder.encode(한글한글,"UTF-8")


요렇게 넘기니 잘 받아옴


해결하고 나니 쉬운데 정말 개발에서 한글이 깨지기 시작하면 짜증난다.


가능하면 요런 로직들은 post 혹은 / 서버단에서 처리해야 하는데 귀차니즘이 부른 참사..


그래도 URLEncoder.encode / URLDecoder.decode 에 대해서 알게 되었음


참고로  WAS(톰켓) 아래 설정이 필요하다 url을 was에서 모두 인코더 해줌

<Connector connectionTimeout="20000" port="9090" protocol="HTTP/1.1" redirectPort="9443" URIEncoding="UTF-8" />


담 부터 시간이 걸려도 정석으로 처리하는 방법을 고민해야겠다.


한줄요약 get paremeter 한글은 꼭 URLEncoder / URLDecoder  해야함 






반응형
반응형


스프링에서 di 주입할때 항상 좀 헷갈렸던게


bean 을만들고  set 할때  소문자는 안되는거였다..


String firstName


아래 처럼 하면 오류다  

public void setfirstName(int firstNum) {

this.firstNum = firstNum;

}


법칙이다 무조건 set소문자 이후 대문자로 시작해야 한다.

public void setFirstNum(int firstNum) {

this.firstNum = firstNum;

}


그냥 법칙인데 왜 안될까 고민했던적이 있어서... 그냥 하라는대로 하면 되는데 꼭 의문이 생긴다 ㅎㅎ


아마 필드 변수와 구분하기 쉽게 할려고 그런것 같다.


그리고 xml에서 

<bean id="myCalculator2" class="com.javalec.ex.MyCalculator">

<property name="calculator">

<ref bean="calculator"/>

</property>

<property name="firstNum" value="10" />

</bean>


<property name="firstNum" value="10" />

요것 처럼 값을 넘길려면 꼭 set 메서드가 있어야 한다 없으면 애러 ~ 


차근차근 이해하자 대충대충 되는가보다 하고 넘어가면 차후 오류가 생길때 잡기가 힘들다 ㅠㅠ





참고 강좌 ~


반응형

+ Recent posts