반응형

 · 개요 : 상황에 따라서 ajax가 아닌 form 형식으로 컨트롤러에 json array를 전송해야 하는 상황이 있다.

 

 · 방법 :

  [자바스크립트]

var form = document.createElement("form");
var input = new Array();

form.setAttribute("charset", "UTF-8");
form.setAttribute("accept-charset", "UTF-8");
form.setAttribute("method", "POST");
form.setAttribute("action", "보낼 주소");

your_json_array.forEach(function(element, idx, array) {
   input[idx] = document.createElement("input");
   input[idx].setAttribute("type", "hidden");
   input[idx].setAttribute("name", idx);
   input[idx].setAttribute("value", JSON.stringify(your_json_array[idx]));
   form.appendChild(input[idx]);
});

document.body.appendChild(form);
form.submit();

  your_json_array는 당신이 준비한 json array이다.

 

  [자바]

import com.google.gson.JsonParser;
import com.google.gson.JsonObject;
import 내가 마든 vo;

@RequestMapping(value = "보낼 주소", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
public View devsimFunction(Model model, HttpServletRequest request, @RequestParam Map<String, String> paramMap) {
   
   List<내가 만든 VO> list = new ArrayList<내가 만든 vo>();
   JsonParser jsp = new JsonParser();
   JsonObject jobj;
   내가 만든 vo;
   
   for (알아서) {
      jobj = (JsonObject)jsp.parse(paramMap.get(index));
      vo = new 내가 만든 vo();
      jobj 를 get으로 값을 받아온다....
   }
   
}

  JsonParser와 JsonObject를 이용하여 값을 받아 처리한다.

  vo를 만들어서 사용하든 본인 상황에 맞게 코드를 작성한다.

반응형
반응형

 · 개요 : 자바스크립트에서 window.open 으로 팝업창을 사용하는 경우

         상황에 따라 자식 팝업창에서 부모 페이지의 함수를 사용해야 하는 경우가 있다.

          (파라미터 전달 가능)

 

 · 호출방법 :

 

⊙ 부모 페이지

window.parentsFun = function(param) {

   console.log("I'm parents");

}

 

⊙ 자식 페이지

opener.parentsFunc(param);

 

 · 출처 : https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1

 

Calling a JavaScript function of Parent Window from Child Window

This blog gives you a way to call a Javascript function of Parent window from the new popup Child Window.

www.c-sharpcorner.com

 

반응형
반응형

 · 개요 : 개인적인 생각이지만 다른 프로젝트에서 오류가 발생하는 경우 쌩뚱맞게 다른 프로젝트에서 이 오류가 나타나는 경우가 어쩌다 발생한다. 이클립스 내부적으로 Maven Path를 잡는 과정에서 뭔가 꼬여서 발생하는 것으로 추측된다.

 

 · 오류 메시지 : Can not find the tag library descriptor for 뒤에 jstl, tiles ... 등등 여러가지가 올 수 있다.

 

 · 해결방법 : 당황하지 말고 pom.xml 파일에서 오류 구문이 나타나는 항목을 잘라내고 저장 -> 우측 하단에서 이클립스가 Maven 설정을 다시하는 것을 확인할 수 있다. -> 모두 끝나면 잘라내었던 항목을 다시 붙여넣기 한다. -> 다시 이클립스가 Maven 설정을 다시하는 것을 확인할 수 있다. -> 이제 문제가 해결된 것을 확인할 수 있을 것이다.

 

  이방법을 사용하고도 문제가 발생하면 경로 문제 등 진짜 문제가 있거나 하는 경우이다.

 

반응형
반응형

 · 사용 환경 : jQWidgets을 사용한 Web 환경

 · 개요 : jqxGrid 사용 시 기본으로 헤더는 1줄로 표시되는데 2줄로 나타내고 싶은 경우 조치

 · 소스 : 

         renderer: function() {
            return '<div style="margin-top:20px; text-align:center">코로나<br />바이러스</div>';
         },

 · 설명 : jqxGrid 내부의 columns 속성에서 2줄로 나타내고 싶은 속성에 위의 소스를 추가한다.

 · 출처 : jQWidgets 공식 사이트 Q&A

반응형
반응형

* 배열 혹은 JSon 데이터를 중복제거 하는 방법

 

- 방법 1. 배열 데이터를 중복제거 하는 경우

const oneArr = ['aaa', 'bbb', 'bbb'];

const set = Array.from(new Set(oneArr));

 

- 방법 2. JSon 데이터 중복제거 하는 경우(요소가 모두 일치하는 경우만 중복제거된다)


var jsonArrOrg = [];
var jsonArrNew = [];

jsonArrOrg.push({'aaa', 'bbb', 'ccc'});
jsonArrOrg.push({'aaa', 'bbb', 'ccc'});
jsonArrOrg.push({'aaa', 'bbb', 'ddd'});

jsonArrNew = [...new Set(jsonArrOrg.map(JSON.stringify))].map(JSON.parse);

도움을 받은 곳

https://kyounghwan01.github.io/blog/JS/JSbasic/dupulication-property-remove/#filter

 

JavaScript - new Date 날짜 다루기

JavaScript - new Date 날짜 다루기

kyounghwan01.github.io

 

반응형
반응형

 · 환경 : 크롬

 

 · 방법 : style 태그 내부에 아래 코드를 작성한다.

 

   @page { size: A4 portrait; margin:0; }   //A4 세로 출력

   @page { size: A4 landscape; margin:0; }   //A4 가로 출력

 

   자바스크립트에서 인쇄 시 크롬 미리보기 창이 뜨는 경우

   위에서 설정한 대로 인쇄 미리보기 설정이 바뀐 것을 확인 할 수 있다.

 

반응형

'CSS' 카테고리의 다른 글

테이블 내 div 내부 요소(span) 너비가 th, td 전체로 잡히는 경우 조치  (0) 2020.09.25
DIV 가운데 정렬  (0) 2018.04.17
div 속 form 정렬  (0) 2017.12.08
반응형

개요 : jqWidgets의 jqxGrid 사용 중 두개의 컬럼의 헤더를 한개로 합치는 방법

 

해결책 : columns 옵션 중 rendered 옵션을 사용

 

JavaScript :

$("#grid_id").jqxGrid({

   width: 450,

   source: dataAdapter,

   columns: [

      {

         text: "Product",

         datafield: "productname",

         renered: function (columnHeaerElement) {

            columnHeaderElement.html("div id='devsim' style='margin-right: 2px;'>Product</div>")

         }

   },

   {

         text: "Quantity",

         datafield: "quantity",

         renered: function (columnHeaerElement) {

            columnHeaderElement.html("div style='margin-right: 2px;'>Detail</div>")

         }

      }

   ]

});

 

CSS

.jqx-grid-column-header {

   border: none;

}

 

결과 :

 

개인 해결책 : 위의 예시는 공식사이트의 답변 사항이고 개인적으로는 그리드 바인딩이 완료되면 

첫번째 div에 id를 지정 후 border를 지정해주는 방법으로 해결하였다.

$("#grid_id").on("bindingcomplete", function () {

   $("#devsim").parent().parent().parent().css("border", "none");

});

각자 자신의 환경에 맞게 수정해서 문제를 해결하면 된다.

 

 

[출처] : jqWidgets 공식 사이트 Hristo님

www.jqwidgets.com/community/topic/same-header-for-2-columns/

반응형
반응형

스프링 특정 시간에 컨트롤러 함수 호출하는 방법

스케쥴 기능은 여러가지가 있는데 이방법은 @Scheduled 어노테이션을 사용하는 방법으로 비교적 간단하다.

 

1. Dispatcher-Servlet.xml 파일에 항목 추가(환경에 따라 servlet-contexxt.xml 등 맞게 수정한다)

   <beans:beans

      ...

      xmlns:task="http://www.www.springframework.org/schema/task"

      ...

      xsi:schemaLocation= ...

       ...

        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd

       ...>

 

<annotation-driven />

<task:annotation-driven />

 

2. 특정 시간에 호출하려는 메서드 상단에 어노테이션을 추가한다. (아래는 매일 오후 2시 15분에 호출하도록 되어 있다.)

   @Scheduled(cron="0 15 14 * * ?")

   public void test() {

      ...

   }

서버가 동작중일 때 해당 시간에 메서드가 호출되는 것을 확인할 수 있다.

 

[출처 및 cron 시간에 대한 자세한 사항은 아래 사이트 참고할 것]

huskdoll.tistory.com/819

 

[Spring] @Scheduled 정해진 시간에 맞춰서 모듈 실행하기

Linux에서 cron 을 사용하는것 처럼 웹서비스에서도 정해진 시간에 무언가를 실행해야 하는 경우가 종종 있습니다. 자바에도 그런 기능을 제공해주고 있고, Spring에서는 손쉽게 사용할 수가 있습

huskdoll.tistory.com

 

 

반응형
반응형

1. pom.xml 파일 더블클릭

2. 하단 Dependency Hierarchy 탭 클릭

3. 예외시킬 항목 선택 후 마우스 우측 클릭

4. Exclude Maven Artifact... 클릭

이방법이 제일 편하고 확실하다 !

반응형
반응형

이클립스나 STS에서 메이븐 수정 후 

프로젝트는 정상적으로 동작하는데 프로젝트에 에러메시지가

계속 나타는 경우 조치 방법

프로젝트 우측 클릭 -> Maven -> Update Project...

반응형

+ Recent posts