반응형

 · 개요 : 상황에 따라서 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를 만들어서 사용하든 본인 상황에 맞게 코드를 작성한다.

반응형
반응형

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

스케쥴 기능은 여러가지가 있는데 이방법은 @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. 서비스

List<Vo> list = new ArrayList<Vo>();

Map<String, Object> map = new HashMap<String, Object>();

map.put("list", list);

dao.insertBatch(map);

 

2. Dao

public int insertBatch(Map<String, Object> map);

 

3. XML

<insert id="insertBatch" parameterType="java.util.Map">

   INSERT ALL

   <foreach collection="list" item="item">

      INTO 테이블

      (

          컬럼1

         , 컬럼2

      )

      VALUES

      (

           #{item.컬럼값1}

         , #{item.컬럼값2}

      )

   </foreach>

   SELECT * FROM DUAL

</insert>

 

 

반응형
반응형

스프링 프로젝트를 생성하고 내용을 채우고 테스트로 Debug on Server를 하려고 

하는데 Java Applet, Java Application, JUnit Test만 보이고 

Debug on Server가 보이지 않을 경우 조치 방법



프로젝트 우측 클릭 - Maven - Update Project... 실행 후 다시 메뉴를 띄워보면 Debug on Server가 보일 것이다.


도움을 받은 사이트 : [..ing 블로그] http://iclass.tistory.com/entry/Simple-Spring-Web-Maven-Example

반응형
반응형

Ajax get 방식으로는 데이터가 잘 넘어가는데 post 방식으로 변경해서 데이터를 보내면 400 에러가 뜨면서

데이터가 제대로 보내지지 않을 때 반드시 확인 하고 넘어갈 사항


1. js 코드 부분(JSON 형식을 제대로 지켰는지 확인)


var data = JSON.stringify({

hyundai : 'avante',

kia : 'k5',

ssangyong : 'korando'

});


$.ajax({

url : url 주소,

type : 'POST',

dataType : 'json',

headers : _headers,

data : data,

....

});


2. url로 전달받는 controller에 어노테이션 확인

public 반환형 carMethod(@RequestBody 매개변수들...) {

...

}

반응형

+ Recent posts