스프링 MVC 모델로 웹개발 중인데, @RequestMapping 역할을 하는 바...

스프링 MVC 모델로 웹개발 중인데, @RequestMapping 역할을 하는 바...

작성일 2015.02.13댓글 1건
    게시물 수정 , 삭제는 로그인 필요

스프링 MVC 모델로 웹개발 중인데, @RequestMapping 역할을 하는 바인딩 함수를 만들고 싶네요.
(추가질문: Ajax에서 컨트롤러의 서비스 콜할 때, 전달되는 아규먼트 타입 및 순서에 대한 질문)


.JSP단에서 Controller에 Ajax 콜로 파라메터를 포함해서 "HttpServletRequest request" 정보를 컨트롤러로 넘겼을 때, 
컨트롤러 단에서 이 request를 특정 모델(제가 원하는 모델은 DataMap 인데, 이 내용은 맨 아래)으로 변환(bind)하고 싶은데, 
그 변환하는 방법을 알고 싶습니다.



----[소스1] .jsp 소스 일부 ------
function fncGridMstSearch(page_skip)
{
new Ajax.Request(URL,{
method: 'post',
parameters : {
"mode"       : "doList000"
,"cd_type"    : $F("sch_cd_type")
},
onSuccess : function(transport){
dataPagMst  = transport.responseText.evalJSON().PAGE;
dataSetMst  = transport.responseText.evalJSON().LIST;


----[소스2] 컨트롤러 단의 소스 구성---------
@RequestMapping
public ModelAndView doList000 (HttpServletRequest request,
HttpServletResponse response) throws Exception {
DataMap dataMap = new DataMap();
map_bind(request , dataMap);       <==== 여기서 dataMap 모델로 binding
.....
}

여기서, 사용하고 싶은 map_bind() 함수를 만들고 싶은데, 
HttpServletRequest 모델은 DataMap 모델로 변환할 수 있는 binding함수를 만들고 싶네요.
bind 이후에는
String s_paradata = dataMap.get("mode");
처럼 dataMap 모델에서 ajax에서 전달받은 파라메터 값을 꺼내 쓰고 싶네요


물론, 아래처럼
----------[소스3]  아래 -----------
@RequestMapping
public ModelAndView doList000 ( @ModelAttribute("dataMap") DataMap dataMap, 
HttpServletRequest request, HttpServletResponse response
) throws Exception {
......
}

@ModelAttribute 애노테이션을 사용해서 Spring에서 알아서 모델매핑을 해 주는 방식도 있다고 하는데, 
이런 저런 이유로 그게 잘 안되서, 
따로 애노테시션(@ModelAttribute)이 하는 역할을 bind함수를 따로 만들어서 하고 싶습니다.

함수를 만들어 주면 최고이고요^^, 
그게 어렵다면, 바인딩함수 만들 때, 참조할 수 있는 정보 부탁합니다.





-----------[소스4] DataMap.java -------------
import java.util.Collection;
import java.util.Map;
import java.util.Set;

import org.apache.commons.collections.FastHashMap;

/**
 * @FileName   : DataMap.java
 */
@SuppressWarnings("unchecked")
public class DataMap<K,V> implements Map{
FastHashMap map;
public DataMap(){
map = new FastHashMap();
}

public void clear() {
map.clear();
}

public boolean containsKey(Object key) {
return map.containsKey(key);
}

public boolean containsValue(Object value) {
return map.containsValue(value);
}
public Set entrySet() {
return map.entrySet();
}

/* (non-Javadoc)
* @see java.util.Map#get(java.lang.Object)
*/
public Object get(Object key) {
return map.get(key);
}
public Object get() {
return map.keySet();
}
/* (non-Javadoc)
* @see java.util.Map#isEmpty()
*/
public boolean isEmpty() {
return map.isEmpty();
}

/* (non-Javadoc)
* @see java.util.Map#keySet()
*/
public Set keySet() {
return map.keySet();
}

/* (non-Javadoc)
* @see java.util.Map#put(K, V)
*/
public Object put(Object key, Object value) {
if (value == null) {
value = "";
}
return map.put(key.toString().toLowerCase(), value);
}
/* (non-Javadoc)
* @see java.util.Map#put(K, V)
*/
public Object putNoLowercase(Object key, Object value) {
if (value == null) {
value = "";
}
return map.put(key.toString(), value);
}

/* (non-Javadoc)
* @see java.util.Map#putAll(java.util.Map)
*/
public void putAll(Map map) {
map.putAll(map);
}


/* (non-Javadoc)
* @see java.util.Map#remove(java.lang.Object)
*/
public Object remove(Object key) {
return map.remove(key);
}

/* (non-Javadoc)
* @see java.util.Map#size()
*/
public int size() {
return map.size();
}

/* (non-Javadoc)
* @see java.util.Map#values()
*/
public Collection values() {
return map.values();
}
}


========= 2/16 질문 보충 ==========
.jsp단에서 Ajax로 컨트롤러의 메서드(method)를 콜 할 때 넘겨주는 아규먼트의 순서는 
어떻게 결정되는 걸까요?
즉, 컨트롤러 단의 메서드에서 아규먼트 순서를 정하는 대로 결정되는 것인지?
아니면, Ajax프레임웍(prototype)에서 컨트롤러에 넘길 때 결정해서 넘겨주게 되는 것인지?
어떤게 맞는 것일까요?

그것도 아니면, 메서드 호출 아규먼트 순서가 고정되는 것이 아니라, 아규먼트의 타입에 맞춰서 알아서 넘어가게 되는 것일까요?
즉, 콜되는 컨트롤러단에서 메서드 아규먼트의 순서를 정하면, 타입에 맞게 알아서 맞춰지는 것일까요?



#스프링 mvc #스프링 mvc 구조 #스프링 mvc 패턴 #스프링 mvc 게시판 만들기 #스프링 mvc 프로젝트 구조 #스프링 mvc 구조 흐름 #스프링 mvc 로그인 구현 #스프링 mvc 프로젝트 만들기 #스프링 mvc 프로젝트 없음 #스프링 mvc 예제

profile_image 익명 작성일 -

제가 예전에 만든건대요.. hashmap부분을 dateMap으로 변경해서 하시면 될거 같내요...
일단 이소스로 테스트부터 해보세요 원하시는건지는 잘 모르겠으나...도움이되셨으면 좋겠네요...

프로그래밍 관련 공부 과정 정리

... 오라클 스프링 c c++ 비쥬얼베이직 너무 다양하게 많은데요 이런 프로그램들이 각각 어떤 역할을 하는웹개발 안드로이드나 IOS쪽 모바일 어플개발 쪽으로 가려면...

원피스질문

... 등장하는 답례포는 '무턱대고 쳐내는 단순한 방어는 헛힘을 쓰는 것'이라는 레일리의 가르침에 따라서 한 발... 고무고무 스프링 총탄불릿 ○● 애니메이션 721화에서 등장한...

클라리넷에 대해서

... 가지의 모델로 정착했다. <클라리넷의 가격> 국산은 2~30만원대 하는 것두 있는 걸로 알고 있구요. 외제는 기본... 에스 스프링선생님은 테크닉의 대가며...

원피스 SBS 질문코너 목록~!! (내공최대)

... 정말 날씨를 조종하는 이야기가 있다는 데엔 놀랐습니다만, 혹시 이 이야기 를 모델로 삼으신 건가요? O: '비가... ㅣ 스프링스프링열매 ㅣ 이걸로 대충 이해가 됐으려나?...

이건희 회장의 부인 홍라희 여사가 있는..

... jpg 유영국(劉永國, 1916-2002)한국의 대표적 추상화가 한 사람인 유영국은 1935년 일본으로 건너가 진보적인 미술교육을 하는 도쿄 분카[文化]학원 유화과에 입학했다....

빅뱅에 대해 자세히 알려주세용

... 광고 모델로 활동중인 하이트 맥주의 CM송이기도 하다. 멤버 승리는 당시 미성년자의 나이로... 페스티벌 "스프링그루브 페스티벌"에 2NE1과 함께 출연하였다....

영어해석

... 이 역할을 인용한 마이크 russell2하고 앨런... 석회화 스프링이나 북경의 호수. 반대로... 이번 회담은 교훈 하나를 추정하는...

록을 좋아하면 꼭 들어봐야될 록 명반...

... 도어스, 브루스 스프링스틴으로 이어진 미국 록 음악은 얼터너티브 시대에... 그 대표적-을 운영하는데 심혈을 기울이고 있었다(현재도 물론 운영 중이다). 다년...