반응형

Struts2 에서 struts.xml 의 action에
파라미터 값을 전달하여 처리하고 싶다면..

먼저 해당 클래스에 변수를 설정하고
getter를 만들어 주면
struts.xml 에서 사용할 수 있습니다.

변수 선언 및 getter 생성
private String redirectUrl;

public String getRedirectUrl() {
	return redirectUrl;
}


struts.xml 에서 사용

	/user/login.do?redirectUrl=${redirectUrl}



작게나마 도움 되시길 ^^
반응형
반응형

Java 에서 DB select 결과를 받아서
JSON Object로 저장하니까
한글이 죄다 깨져서 ??? 로 저장이 되더군요..

JSON Object 저장 할 때
HTTP response 의 Character set 을 UTF-8 로 설정하면
한글 깨지는 현상 막을 수 있습니다.

String jsonString = JSONValue.toJSONString(result);
response.setCharacterEncoding("UTF-8");
response.getWriter().print(jsonString);

작은 도움이나마 되시길~ ^^

반응형
  1. 2013.09.13 13:02

    가장 큰 도움이 되었습니다.

    • hyshin 2013.11.08 12:28 신고

      도움 되셨다니 다행입니다 ^^ 좋은 하루 되시길~

반응형

오라클 NUMBER 형 컬럼의 데이터를 HashMap 타입으로 받아
java에서 사용하려고 하니
java.math.BigDecimal cannot be cast to java.lang.String  오류가 발생하더군요.

사용된 iBatis 문

<select id="SQL-VIEW" parameterClass="java.util.Map" resultClass="java.util.HashMap">
SELECT
    ID
    ,COMMUNITY_ID
    ,TITLE
    ,TYPE_CODE
    ,LIST_ORDER
    ,PAGE_SIZE
    ,HYPERLINK_URL
    ,AUTH_WRITE
    ,AUTH_READ
    ,IS_OPEN
    ,TO_CHAR(REG_DATE, 'YYYY.MM.DD HH24:MI') REG_DATE
    ,TO_CHAR(UPT_DATE, 'YYYY.MM.DD HH24:MI') UPT_DATE
    FROM COMMUNITY_MENUS
WHERE
    ID = #menuID#
    AND IS_DELETE = 'N'
</select>

 


오류가 발생한 java 문
String pageSize = (String) mnuMap.get("PAGE_SIZE"));​



NUMBER 타입을 곧바로 String으로 캐스트 변환하려고 하니 생기는 문제였습니다.

캐스트 변환을 하지 않고,
String 클래스의 valueOf (Object) 메소드를 이용해 처리하면
문제 해결할 수 있습니다.

수정된 java 문
String pageSize = String.valueOf(mnuMap.get("PAGE_SIZE"));​



작게나마 도움 되시길~ ^^

 

 

반응형
  1. 김웅진 2011.05.10 10:04

    크게 도움이 되었습니다. int 변환 후 다시 String변환 처리도 안먹혀서 고민하고 있었는데 왜 이걸 생각하지 못했나

    자책이 들 정도로 한방에 해결 되었습니다. ^_^

    • hyshin 2011.05.24 13:18 신고

      도움 되셨다니 다행입니다.. 좋은 하루 되세요 ^^

  2. 이홍주 2011.05.25 11:30

    완전 감사합니다.~~ 캬캬캬
    하나 배우고 가네요~

    • hyshin 2011.06.03 15:03 신고

      ㅎㅎ 댓글 감사합니다 ^^ 도움 되셨길 바랍니다 ^^

반응형


JDK 1.5_22 + Spring 2.5.6 + iBatis 2.3.4 + Oracle 10g

요즘 Spring MVC 이용해 개발을 계속 하고 있는데,
iBatis에서 parameterClass와 resultClass를
DTO 선언 없이, HashMap 만으로 이용해서 만들고 있습니다.

그런데 CLOB은 정상적으로 값이 넘어가지 않는 오류가 발생하더군요.

오라클 9i 에서는 Clob type handler 를 별도 선언해서 사용하기도 한다고 하는데
10g에서는 곧바로 사용할 수 있다고 합니다.

항상 DTO 써서 개발하다가 이번에 없이 하려다 보니
예상치 못한 데서 문제가... ^^;;

제가 해결한 소스 올려 봅니다.

먼저 insert, update 와 같은 Manipulation 작업에서는 ..
해당 파라미터 뒤에 :CLOB 이라고 붙여줌으로써 해결할 수 있습니다.

<insert id="SQL-INSERT" parameterClass="java.util.Map">
    INSERT INTO COMMUNITY_BBS (
        ID
        ,MENU_ID
        ,COMMUNITY_ID
        ,ROW_GROUP
        ,ROW_POSITION
        ,ROW_DEPTH
        ,TITLE
        ,CONTENTS
        ,USER_ID
        ,NICKNAME
        ,IS_NOTICE
        ,REG_DATE    
    ) VALUES (
        #bbsID#
        ,#menuID#
        ,#communityID#
        ,#bbsID#
        ,1
        ,1
        ,#title#
        ,#contents:CLOB#
        ,#userID#
        ,#nickname#
        ,#isNotice#
        ,SYSDATE
    )
</insert>

 

그리고 select 와 같은 retrieve 구문에서는
resultMap 을 하나 선언한 뒤 사용하면 해결됩니다.
(resultClass를 곧바로 사용할 경우, CLOB의 주소값이 넘어오더군요..)

<resultMap id="ResMap" class="java.util.HashMap">
    <result property="ID"/>
    <result property="MENU_ID"/>
    <result property="COMMUNITY_ID"/>
    <result property="ROW_GROUP"/>
    <result property="ROW_POSITION"/>
    <result property="ROW_DEPTH"/>
    <result property="TITLE"/>
    <result property="CONTENTS" javaType="java.lang.String" jdbcType="CLOB"/>
    <result property="USER_ID"/>
    <result property="NICKNAME"/>
    <result property="HIT_COUNT"/>
    <result property="RECOMMEND_COUNT"/>
    <result property="COMMENT_COUNT"/>
    <result property="IS_NOTICE"/>
    <result property="REG_DATE"/>
    <result property="UPT_DATE"/>
</resultMap>
    <select id="SQL-VIEW" parameterClass="java.util.Map" resultMap="ResMap">
        SELECT
            ID
            ,MENU_ID
            ,COMMUNITY_ID
            ,ROW_GROUP
            ,ROW_POSITION
            ,ROW_DEPTH
            ,TITLE
            ,CONTENTS
            ,USER_ID
            ,NICKNAME
            ,HIT_COUNT
            ,RECOMMEND_COUNT
            ,COMMENT_COUNT
            ,IS_NOTICE
            ,TO_CHAR(REG_DATE, 'YYYY/MM/DD HH24:MI') REG_DATE
            ,TO_CHAR(UPT_DATE, 'YYYY/MM/DD HH24:MI') UPT_DATE
        FROM HER_COMMUNITY_BBS
        WHERE
            ID = #bbsID#
            AND IS_DELETE = 'N'
    </select>
 

생각보다 훨씬 간단했는데...
이걸 못 찾아서... 만 하루동안 삽질을.... ^^;;

반응형
  1. 두이 2015.01.06 16:42

    감사히 담아갑니다 :)

    • hyshin 2015.01.23 15:05 신고

      댓글 감사합니다~ 작게나마 도움 되셨길 합니다

  2. shamm 2016.06.03 16:06

    감사합니다 검색해도 잘안나오는 편리한팁~ ㅋ

    • hyshin 2016.08.17 14:40 신고

      도움 되셨다니 저도 감사합니다 ^^ 오늘도 좋은 하루 되세요~

+ Recent posts