[JAVA 개발환경설정] 5. Spring프로젝트 셋팅 2015-02-26

1. STS 다운로드 : Eclipse에 플러그인을 추가하여 구성할 수도 있지만 Spring에서 제공하는 Spring Tool Suite을 활용하면 빠르고 안정적으로 개발환경을 설정 할 수 있다.

>>> 다운로드

sts_download

- http://spring.io/tools/sts/all 접속
- OS환경에 맞는 zip파일 다운로드
>>> 설치 & 설정
- D:\_Development\tools에 압축해제
- D:\_Development\tools\sts-bundle\sts-3.6.3.SR1\sts.exe 의 바로가기 생성
※ 프로젝트별로 사용하고자 하는 sts 바로가기를 생성해 별도의 Workspace를 구성한다.
   ex) D:\_Development\tools\sts-bundle\sts-3.6.3.SR1\STS.exe  -data D:\_Development\source\{프로젝트명}

2. 프로젝트 생성 및 톰캣 연동 – Hello World!

>>> 프로젝트 생성

sts_new_project

- New > Select Wizard > Spring > Spring Project
- 프로젝트명 입력 & Spring MVC Project 선택
>>> 패키지명 입력

sts_package_name

- 보통 com.{회사명}.{어플리캐이션명}의 유형으로 입력
>>> 톰캣 다운로드 : 다른 프로젝트와 별도로 구성한다.
- http://tomcat.apache.org/download-70.cgi
- D:\_Development\tools\sts-bundle\tomcat 폴더에 원하는 버전의 zip파일 다운로드
- 버전별 압축해제 D:\_Development\tools\sts-bundle\tomcat\{버전}
>>> STS에서 서버 생성

sts_create_server

- Apache > Tomcat v7.0 Server [Next]
- Tomcat Installation directory > Browser > 설치한 톰캣 경로 입력 [Next]
- 생성한 서버로 실행하기 원하는 프로젝트 Add [Finish] 또는 프로젝트별 properties에서 개별 추가한다.
>>> Hello World 페이지 실행

sts_hello_world

- Run As > Run On Server
- Hello World가 보이면 서버연동이 정상완료된것이다.

[문제해결] JAVA – Value ‘0000-00-00’ can not be represented as java.sql.Timestamp 2014-11-18

1. 문제상황

> mysql의 DATETIME컬럼에 접근시 에러가 발생하였다. 

* 에러메시지
Value '0000-00-00' can not be represented as java.sql.Timestamp

2. 문제해결

> 이에러는 mysql의 테이블 컬럼에 디폴트 값을 0000-00-00 00:00:00로 정의 하였을때 Connector/J driver에서 에러로 판단해서 발생하게 되므로 접속시 접속시 자동으로 null로 변환해주는 옵션을 추가한다.

* jdbc:mysql://{IP}:{포트}/{디비명}?zeroDateTimeBehavior=convertToNull

※ 개인적으로 특별한 일이 없는한 ‘0000-00-00 00:00:00’의 기본값을 줄 필요는 없다고 생각한다.

[JSP & Servlet 배경지식] 8. JSP – Expression Language 2014-10-26

<표현언어 : Expression Language>

JSP 기본문법을 보완하기 위한 표현방법으로 여러가지 유연함을 제공한다.

> 1. 11가지 기본객체제공

- pageContext
- pageScope
- requestScope
- sessionScope
- applicationScope
- param
- paramValues
- header
- headerValues
- cookie
- initParam
ex> ${paramValues.ping}

> 2. 데이터 타입

- boolean
- integer
- float
- string
- null

> 3. 연산자

- 수치연산
--- '+'
--- '-'
--- '*'
--- '/' or div
--- '%' or mod
- 비교연산
--- '==' or eq
--- '!=' or nu
--- '<' or lt --- '>' or gt
--- '<=' or le --- '>=' or ge
- 논리연산
--- '&&' or and
--- '||' or or
--- '!' or not
- empty연산
--- empty {값}
- 비교선택 연산
--- {수식} ? {값} : {값}
- 우선순위
--- []
--- ()
--- -(단일) not ! empty
--- * / div % mod
--- +  -
--- <  >  <=  >=  lt  gt  le  ge
--- ==  !=  eq  ne
--- &&  and
--- ||  or
--- ?  :
ex> ${ 10 + 10 }

> 4. 객체의 메서드 호출

ex>
<%@page import="opendocs.test.SampleMethod"%>
<%
    SampleMethod sampleMethod = new SampleMethod();
    request.setAttribute("sm", sampleMethod);
%>
${sm.test('param')}