Tr 컴포넌트의 Parameters 속성에서 콤마(,)로 구분하기 때문에
해당 값에 , 가 들어가 있는 경우 말씀하신 대로 문제가 발생합니다.
프로젝트 중 같은 문제가 있어
Parameters의 값에서 콤마(,)를 다른 문자로 치환한 다음
실제 DB 처리 딴에서 다시 역으로 치환해서 해결했습니다.
물론, 치환할 문자와 같은 문자가 존재할수도 있기 때문에 완변하다고는 할 수 없지만,
치환할 문자를 잘 쓰지 않는 것으로 한다면 어느정도 막음이 될것 같습니다.
예를 들면, 다음과 같이 하시면 됩니다.
1. tr post 시
function fn_OnSave() {
if ( confirm ("저장 하시겠습니까?") ) {
var mstrAAA = document.form.AAA.value.replace(/,/gi, ______@_____");
var mstrBBB = document.form.BBB.value.replace(/,/gi, "______@_____");
tbtr_sample.Parameters ="aaa=" + mstrAAA + ",bbb=" + mstrBBB ;
//alert(tbtr_sample.Parameters);
tbtr_sample.Post();
} else {
return;
}
}
2. DB 처리시
이때는 역으로 치환한 문자를 다시 콤마(,) 로 바꾸어서 DB에 넣어주시면 됩니다.
도움이 되었으면 좋겠습니다.
저는 일단 이렇게 해결했습니다만, 더 나은 방법이 있으시면 공유 부탁드리겠습니다.
이상입니다.
>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 : GFMS
>* 문의할 Component명 및 버전 : Tr 4.0
>* DataSet 버전 : 4.0
>* Tr 버전 : 4.0
>* 문의 유형(질문/요청/참조) : 질문 및 요청
>* 내용 :
> Tr 컴포넌트에서 Parameters 속성 사용시, 콤마(,)를 값으로 넣어주고 싶은데 안 되네요. 어떤 방법으로 해야 하나요?
> 콤마가 구분자로 사용되어서 그러는것 같은데 어찌 해야 합니까? 서버단에에 StringIndexOutOfBoundsException이 다음과 같은 에러 뜹니다.
>java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at java.lang.String.substring(String.java:1444)
> at com.gauce.filter.GauceFilter.D(Unknown Source)
> at com.gauce.filter.GauceFilter.B(Unknown Source)
> at com.gauce.filter.GauceFilter.doFilter(Unknown Source)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)