설명


Controller 에 @InitBinder 기능을 추가로 사용 한다. WebDataBinder.class 를 인자로 받게 된다.

Sample


binder.registerCustomEditor(requiredType, field, propertyEditor);
  • requireType: 파라미터 Class
  • field: 파라미터 명
  • propertyEditor: 파라미터 처리 핸들러

해당 코드는 Integer[] 타입의 tests=123&tests=124&tests=125 요청을 처리 하는 핸들러 이다. 필요에 따라 setAsText 함수를 Override 하여 값 수정 후 setValue(text) 처리를 하자.


@InitBinder
protected void initBinder(WebDataBinder binder) {

    binder.registerCustomEditor(Integer[].class, "tests", new PropertyEditorSupport() {

        public void setAsText(String text) throws IllegalArgumentException {
            // text: field value

            if (text.indexOf("&") == -1) {
                setValue(Integer.valueOf(text.split("=")[1]));
                return;
            }

            List<Integer> tests = new ArrayList<Integer>();

            for (String test : text.split("&")) {
                tests.add(Integer.valueOf(test.split("=")[1]));
            }

            setValue(tests.toArray());
        }
    });
}


확인 하기


@RequestMapping(value="/request", method=RequestMethod.POST)
public @ResponseBody String request(Test test) throws Exception {
    return Arrays.toString(test.getTests());
}

참고 사이트


Sample


$.param 을 사용하면 tests=1&test=2&test=3 형태로 변경 해준다.


var tests = [1, 2, 3, 4, 5];

$.ajax({
    type: 'post',
    url: '/test',
    data: {
        tests: $.param({ tests: tests }, true)
    },
    dataType: 'json'
}).done(function(result) {
    // success
}).fail(function(result) {
    // fail
});

참고 사이트


Sample


$(element).attr() 사용 시 안되는 경우가 있어 prop 로 변경 하니 동작 하였다.


$('#allDeleteCheck').on('click', function() {
    var chk = $(this).is(':checked');

    if (chk) {
        $(".deleteCheck").prop('checked', true);
    } else {
        $(".deleteCheck").prop('checked', false);
    }
});


문제 발생

libpcre.so.1 파일을 찾을 수 없다.


whitelife@dev:/etc/init.d$ sudo service nginx start
 * Starting Nginx Server...                                                                /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1:            cannot open shared object file: No such file or directory
                                                                         [fail]

문제 해결

심볼릭 링크를 걸어 해결 한다.


whitelife@dev:/lib$ sudo ln -s /usr/local/lib/libpcre.so.1 /lib

참고 사이트


1. Requirements Library Install

1.1. gzip module requires zlib library

C로 작성된 데이터 압축 라이브러리의 일종이다.

Home: http://www.zlib.net/
Download: http://zlib.net/zlib-1.2.8.tar.gz


tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
sudo make install

1.2. rewrite module requires pcre library

PCRE 라이브러리, POSIX 정규식 API 지원

Home: http://www.pcre.org/
Download: http://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download


tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make
sudo make install

1.3. ssl support requires openssl library

일반적으로 Linux 설치 시 포함 되어 있다.


2. Nginx Install

Download: http://nginx.org/en/download.html

원하는 버전 파일을 다운로드 하도록 하자.


tar zxvf nginx-1.6.0.tar.gz
cd nginx-1.6.0
./configure
make
sudo make install


위 요구되는 라이브러리 설치만 성공적으로 끝났다면, 무사히 설치는 완료 되었을 것이다.


3. Nginx InitScript Config

Service 에 등록 하기 위해 initScript 를 셋팅 한다.


sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx

4. Nginx Service Config

4.1. Update
sudo update-rc.d -f nginx defaults

4.2. Remove
sudo update-rc.d -f nginx remove

5. Nginx Service Start

sudo service nginx start

6. Request Welcome Page

http://localhost/ 접속 해보자. 외부에서 접속을 해야 하는 경우 80번 포트를 열도록 하자.


sudo ufw allow 80/tcp

참고 사이트


Developer Tool Install

gcc, make 등 기본적인 package 를 포함 하고 있다.


whitelife@dev:~$ sudo apt-get install build-essential

참고 사이트


1. 저장소 설정 파일 열기

whitelife@dev:~$ sudo vim /etc/apt/sources.list

2. 저장소 설정 수정 하기

설치 완료 시 기본적으로 설정 되는 주소 이다. 너무 느리기도 하고, 저장소에 없는 라이브러리가 있어, 주로 변경 후 사용 한다. 국내에서는 보통 ftp.daum.net 를 사용 한다.


# deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release i386 (20140806.1)]/ precise main restricted

#deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release i386 (20140806.1)]/ precise main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://kr.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://kr.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://kr.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise universe
deb http://kr.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://kr.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://kr.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://kr.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://kr.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu precise-security main restricted
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
deb http://security.ubuntu.com/ubuntu precise-security universe
deb-src http://security.ubuntu.com/ubuntu precise-security universe
deb http://security.ubuntu.com/ubuntu precise-security multiverse
deb-src http://security.ubuntu.com/ubuntu precise-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

## Uncomment the following two lines to add software from Ubuntu's
## 'extras' repository.
## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
# deb http://extras.ubuntu.com/ubuntu precise main
# deb-src http://extras.ubuntu.com/ubuntu precise main


vi 에서 아래와 같은 정규식을 사용하여 수정 하자.


:%s/kr.archive.ubuntu.com/ftp.daum.net/g


1. password 설정 하기

whitelife@dev:~$ sudo passwd root
새 UNIX 암호 입력:
새 UNIX 암호 재입력:
passwd: password updated successfully
whitelife@dev:~$

2. 확인 하기

whitelife@dev:~$ su - root
암호:
root@dev:~#


'Linux' 카테고리의 다른 글

Ubuntu Developer Tool 설치 하기  (0) 2014.09.21
Ubuntu 저장소 변경 하기  (0) 2014.09.21
Ubuntu rar 압축 풀기  (0) 2014.09.21
Ubuntu 고정 IP 설정 하기  (0) 2014.09.21
vim 문자열 replace 하기  (0) 2013.11.10

+ Recent posts