IE의 경우 URL 길이를 2083 까지 지원이 됩니다.
2083이 넘어가는 URL을 넣는 경우 뒤의 파라메터가 잘리게 되므로,
Dataset의 dataID에서 이를 체크하게 되어 있으며 사이즈가 오버 될 경우 동작하지 않게 처리되어 있습니다.
Post 방식으로 변경시 데이터가 콤마(,)가 들어 있지 않을 경우
1. TR 컴포넌트의 Parameters속성에 담아 보낼 수 있고
2. 데이터에 콤마가 있을 경우 Parameters를 encoding하여 처리하여야 합니다. (Parameters 속성은 구분자를 콤마 ,로 지정합니다.)
3. 또는, 파라메터를 Dataset으로 처리하여 TR 조회시 Input으로 넘겨 처리할 수 있습니다.
>* 고객시스템명 : nISP
>* GAUCE 버전 : GAUCE4
>* WAS 종류(WebLogic 등등) : WebLogic
>* DB 종류 : Oracle9i
>* 문의 유형(질문/요청/참조) :
>* 내용 :
>
>부모창,
>자식창이 있습니다.
>
>부모창에서 가우스 데이타 리스트를 체크하여 자식창을 호출합니다.
>
>그리고 자식창에서는 체크된 row의 parameter를 key로 하여
>체크된 놈들만 재쿼리를 날려 보여 줍니다.
>
>이때 문제가 있는게..
>parameter의 양이 많이 지면 쿼리를 실행 할 .java 파일이 반응을 하지 않습니다.
>양이 적으면 값이 잘 나오고요..
>
>부분적 소스는 아래와 같습니다.
>
>1. 자식창
>function f_Retrieve() {
>
> var ds = opener.ds_dataList;
> var params = "?line_location_id_list=";
> var cnt = 0;
> for (i = 1; i <= ds.CountRow; i++){
> if (ds.NameValue(i, 'chk') == 'T') {
> if (cnt == 0) {
> params += ds.NameValue(i, 'lineLocationId');
> } else {
> params += "," + ds.NameValue(i, 'lineLocationId');
> }
> cnt += 1;
> }
> }
>
> alert(params);
>
> ds_dataList.DataID = "/isp.shipping.shippingNotice.retrieveShippingNoticeMgtListPop.gau"+params;
> ds_dataList.Reset();
> }
>
>2. 쿼리를 실행 할 java 파일
>public void execute(HttpServletRequest req, HttpServletResponse res, GauceRequest gauceRequest,
> GauceResponse gauceResponse) throws LException{
>
> GauceDataSet gds = new GauceDataSet();
> gauceResponse.enableFirstRow(gds);
>
> LData inputData = LCollectionUtility.getData(req);
> UserData userData = UserData.getCurrentUserData();
>
> LLog.debug.println(inputData.getString("line_location_id_list"));
>
> String temp [] = null;
> List list = new ArrayList();
> if(!"".equals(inputData.getString("line_location_id_list")) && inputData.getString("line_location_id_list") != null) {
> temp = inputData.getString("line_location_id_list").split(",");
> for (int i = 0; i < temp.length; i++) {
> list.add(temp[i]);
> }
>
> inputData.set("line_location_id_list", list);
> }
>
> LLog.debug.println(inputData);
>
> ShippingNoticeBiz biz = new ShippingNoticeBiz();
> LMultiData result = biz.retrieveShippingNoticeMgtListPop(inputData);
>.
>.
>.
>
>
>위에서 parameter 양이 많아 지면
>LLog.debug.println(inputData.getString("line_location_id_list"));
>이 부분을 출력조차 하지 않고... 호출이 되지 않은것 처럼 있습니다.
>
>get 방식이라 그럴꺼다 라고 하는데..
>post 방식으로 바꿀려면 뭘 어떻게 해야 되는지 모르겠네요.
>
>답변 부탁드립니다.