Ajax - Debug Console 만들기

Published on: 2009. 11. 13. 01:40 by louis.dev

보통 Ajax 코딩을 하다 보면 값이 제대로 넘어왔는지 넘어 갔는지를 확인 하기 위해서는 alert()창을 이용해서 찍어야 하는데 이러한 방식은 항상 확인 버튼을 눌러줘야 하기 때문에 불편하다.

그렇기 때문에 log를 만드는 js파일을 생성하고 페이지 마다 다음을 추가하여 로그를 페이지에 남기면 좋다.

<head>테그 사이에
<script type="text/javascript" scr="ajaxLog.js 파일의 경로"></script>
라고 써주고
<body>테그 사이에
<div id="debugConsole"></div>태그를 넣어준다. 항상 id는 debugConsole이라고 정의해야 한다..ㅎㅎ

그리고 자바스크립트 영역에서 log function을 불러다가 쓰면 된다..
ex) log("버그 시작");

출처: 최범균의 Ajax programing

JSP - JSP 페이지의 캐시 영역 날리기

Published on: 2009. 9. 20. 00:35 by louis.dev


가끔 플렉스로 프로그램을 짜거나 JFreeChart plugin으로 프로그램을 짤때 변경된 사항이 그때그때 바뀌지 않는 경우가 있다.

이는 각 브라우져에 캐시기능이 있기 때문에 변경된 내용의 XML데이터나 이미지 정보를 불러오지 않고 기존에 정보들을 가지고 있음으로 플렉스 차트의 XML같은경우에 아무리 변경해도 값이 플렉스에 반영되지 않는다..

이럴때는 다음과 같은 코드로 캐시의 영역을 초기화 해주며 XML파일 위쪽에 다음과 같이 선언한다.

 String httpVersion = request.getProtocol();
 if(httpVersion.equals("HTTP/1.0")){
    response.setDateHeader("Expires", 0);
    response.setHeader("Pragma", "no-cache");
 }
 else if(httpVersion.equals("HTTP/1.1")){
    response.setHeader("Cache-Control", "no-cache");
 }

 

게시판 Paging Source Code

Published on: 2009. 9. 6. 19:19 by louis.dev

적용 방법
paging을 하고 싶은 페이지에 업로드 된 paging.jsp를 include 한다.

작업 순서
1. Paging 정보를 가지고 있을 Bean 객체를 만든다. 이 Paging Class는 다음과 같은 property를 가진다. 이와 같은 Paging class는 다른 Bean class에서 상속 받아 사용할 수도 있다


[[ PagingBean.java ]]

① private int nowPage;                // 현재 페이지가 몇페이지 인가를 적용
② private int startNum;                // 게시판이 시작되는 ROW의 Number
③ private int totalCount;               // 게시판 총 페이지 수
④ private int countPerPage;         // 페이지당 보여줄 게시판 리스트 갯수
⑤ private int blockCount;             // paging 갯수를 표현함 예를 들어 blockCount = 5 라면 
                        << [1][2][3][4][5] 다음 >>  -> 다음을 클릭하면
                        << [6][7][8][9][10] 다음 >> -> 이런 식으로 페이징 수가 5개가 된다.
⑥ private String searchColumn;     // 검색할 때 사용, 카테고리 선택
⑦ private String searchWord;         // 검색어


2. 기본적으로 늘 초기화 세팅이 되어 있어야할 countPerPage 라든가 blockCount, startNum을 초기화 세팅해줄 PaingUtil Class를 생성한다.
초기화 세팅하지 않을 util 클래스를 작성하지 않으면 페이징 시에 항상 세팅을 해주어야 한다.
만약 페이징 할 모듈이 많고 각각 다른 세팅값을 가져야 한다면 사용자의 요구에 맞게 static method를 정의해 주고 그 안에 있는 값을 세팅을 각각 맞춰서 해주면 된다.


3. Paging을 할 페이지에 paging.jsp 파일을 다음과 같이 include 시킨다.


<jsp:include page="paging.jsp">
     <jsp:param name="actionPath" value="boardList.jsp"/>
     <jsp:param name="totalCount" value="<%=String.valueOf(paging.getTotalCount()) %>"/>
     <jsp:param name="countPerPage" value="<%=String.valueOf(paging.getCountPerPage()) %>"/>
     <jsp:param name="blockCount" value="<%=String.valueOf(paging.getBlockCount()) %>"/>
     <jsp:param name="nowPage" value="<%=String.valueOf(paging.getNowPage()) %>"/>
 </jsp:include>

물론 이 페이지를 인클루드 시키기 전에 위에 파라미터로 넘겨주는 모든 값은 세팅이 되어 있어야 한다.

페이지의 맨상단에서 다음과 같은 코드로 파라미터로 넘어오는 nowPage를 받아야 한다.
if(request.getParameter("nowPage") == null){
  paging.setNowPage(1);
 }else{
  paging.setNowPage(Integer.valueOf(request.getParameter("nowPage")));
 }

totalCount는
   SELECT COUNT(0) FROM 테이블 명
이런 Query문을 날려서 값을 받아 오는 값을 저장하면 된다.

iBatis - SqlMapClient class 만들어 주는 util

Published on: 2009. 8. 8. 03:17 by louis.dev


iBatis를 사용할때 template를 쓰지 않을때는 항상 SqlMapConfig파일을 통해 SqlMapClient를 생성해야 한다. 그것을 쉽게 해주기 위한 Abstract class이다.

package com.myhome.manager;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public abstract class SQLManager {
 
 private SqlMapClient sc = null;
 
 public SQLManager(){
  try{
   sc = SqlMapClientBuilder.buildSqlMapClient(
            Resources.getResourceAsReader(
              "com/myhome/manager/SqlMapConfig.xml"));           //sql설정이 들어가 있는 SqlMapConfig파일 위치 지정
                                                                                            //classes 폴더에 있으면 SqlMapClient.xml로 바로 지정 해도 됨
  }catch(java.io.IOException ie){
   ie.printStackTrace();
  }
 }
 
 public SqlMapClient getSqlMap(){
  return sc;
     }
}

사용방법은 extends로 다음 클래스 파일을 확장 받은다음에 getSqlMap을 통해 SqlMapCleint를 생성한다.

예)

public class UploadDAO extends SQLManager{
 
 public void insert(UploadDTO dto) throws SQLException{
           this.getSqlMap().insert("uploadInsert",dto);
 }

JSTL - fmt를 사용해서 데이터 format 변경하기.

Published on: 2009. 7. 29. 03:56 by louis.dev

jstl의 fmt를 사용하면 날자 데이터를 사용자가 원하는 표기법으로 표기한다던지(yyyy-mm-dd) 숫자 형식에서 소수점을 몇째짜리 까지 표현할 것인지를 정의 할 수 있다.

작업 순서
1. jsp 상단에 fmt 를 선언해 준다.
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

2. 원하는 위치에 <fmt:~~ 이용해서 포맷을 변경한다.


다양한 fmt의 Attribute

1. fmt:formatNumber Attributes
Name Required Request-time Type Description
value false true java.lang.String Numeric value to be formatted.
type false true java.lang.String Specifies whether the value is to be formatted as number, currency, or percentage.
pattern false true java.lang.String Custom formatting pattern.
currencyCode false true java.lang.String ISO 4217 currency code. Applied only when formatting currencies (i.e. if type is equal to "currency"); ignored otherwise.
currencySymbol false true java.lang.String Currency symbol. Applied only when formatting currencies (i.e. if type is equal to "currency"); ignored otherwise.
groupingUsed false true java.lang.String Specifies whether the formatted output will contain any grouping separators.
maxIntegerDigits false true java.lang.String Maximum number of digits in the integer portion of the formatted output.
minIntegerDigits false true java.lang.String Minimum number of digits in the integer portion of the formatted output.
maxFractionDigits false true java.lang.String Maximum number of digits in the fractional portion of the formatted output.
minFractionDigits false true java.lang.String Minimum number of digits in the fractional portion of the formatted output.
var false false java.lang.String Name of the exported scoped variable which stores the formatted result as a String.
scope false false java.lang.String Scope of var.

 

2. fmt:parseNumber Attributes
Name Required Request-time Type Description
value false true java.lang.String String to be parsed.
type false true java.lang.String Specifies whether the string in the value attribute should be parsed as a number, currency, or percentage.
pattern false true java.lang.String Custom formatting pattern that determines how the string in the value attribute is to be parsed.
parseLocale false true java.lang.String Locale whose default formatting pattern (for numbers, currencies, or percentages, respectively) is to be used during the parse operation, or to which the pattern specified via the pattern attribute (if present) is applied.
integerOnly false true java.lang.String Specifies whether just the integer portion of the given value should be parsed.
var false false java.lang.String Name of the exported scoped variable which stores the parsed result (of type java.lang.Number).
scope false false java.lang.String Scope of var.

 

ex) 패턴 예제

  <fmt:formatNumber value="123456.78" pattern=",###"/> 3자리 기준으로 "," 찍기 (금액 / 소수점 제거)

  <fmt:formatNumber value="123456.78" pattern=".##"/> #의 갯수에 따라 소수점을 출력함 (반올림)

 

3. fmt:formatDate Attributes
Name Required Request-time Type Description
value true true java.lang.String Date and/or time to be formatted.
type false true java.lang.String Specifies whether the time, the date, or both the time and date components of the given date are to be formatted.
dateStyle false true java.lang.String Predefined formatting style for dates. Follows the semantics defined in class java.text.DateFormat. Applied only when formatting a date or both a date and time (i.e. if type is missing or is equal to "date" or "both"); ignored otherwise.
timeStyle false true java.lang.String Predefined formatting style for times. Follows the semantics defined in class java.text.DateFormat. Applied only when formatting a time or both a date and time (i.e. if type is equal to "time" or "both"); ignored otherwise.
pattern false true java.lang.String Custom formatting style for dates and times.
timeZone false true java.lang.String Time zone in which to represent the formatted time.
var false false java.lang.String Name of the exported scoped variable which stores the formatted result as a String.
scope false false java.lang.String Scope of var.

 

4. fmt:parseDate Attributes
Name Required Request-time Type Description
value false true java.lang.String Date string to be parsed.
type false true java.lang.String Specifies whether the date string in the value attribute is supposed to contain a time, a date, or both.
dateStyle false true java.lang.String Predefined formatting style for days which determines how the date component of the date string is to be parsed. Applied only when formatting a date or both a date and time (i.e. if type is missing or is equal to "date" or "both"); ignored otherwise.
timeStyle false true java.lang.String Predefined formatting styles for times which determines how the time component in the date string is to be parsed. Applied only when formatting a time or both a date and time (i.e. if type is equal to "time" or "both"); ignored otherwise.
pattern false true java.lang.String Custom formatting pattern which determines how the date string is to be parsed.
timeZone false true java.lang.String Time zone in which to interpret any time information in the date string.
parseLocale false true java.lang.String Locale whose predefined formatting styles for dates and times are to be used during the parse operation, or to which the pattern specified via the pattern attribute (if present) is applied.
var false false java.lang.String Name of the exported scoped variable in which the parsing result (of type java.util.Date) is stored.
scope false false java.lang.String Scope of var.

 

ex) 표기법 예제

  <fmt:formatDate value="timstamp" type="both" pattern="yy-MM-dd hh:mm"/> 날짜 및 시간

  <fmt:formatDate value="timstamp" type="date" pattern="yy-MM-dd"/> 날짜

  <fmt:formatDate value="timstamp" type="time" pattern="hh:mm"/> 시간


'Web > JSTL' 카테고리의 다른 글

JSTL - <c:import> , <c:redirect>  (0) 2009.04.15
JSTL - <c:url>  (0) 2009.04.15
JSTL - get 방식으로 넘어온 파라미터 값을 JSTL로 받기  (3) 2009.04.07
JSTL - 라이브러리 다운받기  (0) 2009.04.03