Tag Archives: 프레임워크

[iBatis] iBatis 매핑구문에서 비교문(<>) 사용하기

iBatis 매핑 구문을 작성하다 보면 다음과 같은 에러를 만날 수 있다.

사용자 삽입 이미지
WHERE절의 NO값이 10보다 작은것을 가져올려고 했을 뿐인데 문법 오류를 낸다. 이유인 즉슨 <는 태그(Tag)의 시작인데 왜 끝이 없냐고 뭐라 한다-_-; 멍청한 놈아~

하지만 어디까지는 이것은 XML이니 XML규칙을 따르는것이 맞는 것일 것이다. 해결 방법은 두가지가 있다.

1. CDATA로 감싸주는 방법
[code]<sqlMap>
  <select id=”iBatis”>
    <![CDATA[
      SELECT * FROM IBATIS_DATA
      WHERE NO < 10
    ]]>
  </select>
</sqlMap>[/code]

2. <를 &lt;로 치환하는 방법. 마찬가지로 >는 &gt;로 치환하는것을 권장하고 있으나 그냥 >그대로 써도 무관하다.
[code]<sqlMap>
  <select id=”iBatis”>
    SELECT * FROM IBATIS_DATA
    WHERE NO &lt; 10
  </select>
</sqlMap>[/code]

[Spring] ServletRequestUtils

스프링 프레임워크에 포함되어있는 ServletRequestUtils 클래스에 대해 적어볼까 합니다. 저도 이런 존재를 몰랐었는데 기선님의 블로그에서 보고 처음 알게되었고, 아주 잘 사용하고 있습니다^^

그러고 보니 제 지식은 기선님 지식 카피본으로 채워져 있는게 아닐까 하는 생각도 드네요 -_-a

기존에 페이징 처리를 위해 이런 코드가 있었다고 치죠.
[code]if (request.getParameter(“page”) == null)
{
 nowPage = 1;
} else {
 String parsePage = request.getParameter(“page”);
 nowPage = Integer.parseInt(parsePage.equals(“”) ? “1” : parsePage);
}[/code]

위의 코드는 모두들 이해하실것이라 생각됩니다. page라는 이름의 파라미터값을 읽어와서 값이 없을 경우 nowPage에 1을, 값이 있을 경우에는 그 값을 page에 대입하는 과정입니다.

위의 소스도 제 나름대로 줄인다고 줄여본건데 다음의 ServletRequestUtils를 사용한 소스를 한번 보시죠.
[code]ServletRequestUtils.getIntParameter(request, “page”, 1)[/code]

저게 끝입니다. 첫번째 인자로 request를 넣어주고, 두번째 인자는 가져온 파라미터의 이름, 세번째는 값이 없을 경우 사용할 디폴트 값입니다. 세번째 인자는 없어도 됩니다.

page의 값이 있다면 그것을 int형으로 변환해 넘겨줄것이고 없다면 1을 리턴할 것입니다.

getIntParameter뿐만 아니라 getStringParameter등등, 모든 형대로 메서드가 구현되어있습니다. 필요한 녀석을 골라 사용하시면 되겠네요. 그런데 한글은 인코딩 문제가 있네요. 왜 인코딩 처리는 안한건지;