JAVA

ajax호출 시 메소드 호출 및 리턴을 위한 공통 메소드

질주하는구 2020. 9. 4. 10:45

ajax호출 해서 데이터를 처리 하는경우 하나의 url에서 정의된 key를 통해 데이터를 가공하는 경우 사용하는 util Object... args 사용해서 데이터형 상관 없이 임의의 데이터를 정의 호출되는 곳은 이걸 염두하고 xml 작업을 해야 해서... 폐기 처분 ㅠ.ㅠ

package egovframework.cmmn.service;

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;

import org.springframework.util.ReflectionUtils;

import egovframework.cmmn.ApplicationContextProvider;

public class BindingMapperUtil {
	/**
	 * @param String callMapperName 호출할 mapper명(ex: @Service, @Mapper 에 지정한 이름)
	 * @param String callMethodName 호출할 메소드명
	 * @return List<HashMap<String,Object>> 리턴시 hashmap으로 리턴 이 부분은 상황에 맞게 변경 가능
	 * */
	public List<HashMap<String,Object>> ajaxDataCallToList(String callMapperName, String callMethodName, Object... args)
			throws Exception{
		Object objMapper						= ApplicationContextProvider.getApplicationContext().getBean(callMapperName);
		Class<?>[] parameterTypes 		= {HashMap.class};
		Method method 							= ReflectionUtils.findMethod(objMapper.getClass(), callMethodName, parameterTypes);
		Object objReturn 						= ReflectionUtils.invokeMethod(method, objMapper, args);

		return (List<HashMap<String,Object>>)objReturn;
	}
	
	/**
	 * @param String callMapperName 호출할 mapper명(ex: @Service, @Mapper 에 지정한 이름)
	 * @param String callMethodName 호출할 메소드명
	 * @return HashMap<String,Object> 리턴시 hashmap으로 리턴 이 부분은 상황에 맞게 변경 가능
	 * */
	public HashMap<String,Object> ajaxDataCallToInfo(String callMapperName, String callMethodName, Object... args)
			throws Exception{
		Object objMapper						= ApplicationContextProvider.getApplicationContext().getBean(callMapperName);
		Class<?>[] parameterTypes 		= {HashMap.class};
		Method method 							= ReflectionUtils.findMethod(objMapper.getClass(), callMethodName, parameterTypes);
		Object objReturn 						= ReflectionUtils.invokeMethod(method, objMapper, args);
		
		return (HashMap<String,Object>)objReturn;
	}
}

Object... args 에 넘겨주는 정보는 HashMap<String,Obejct> paramMap = new HashMap<String, Object>(); paramMap.put("dumy1","1"); paramMap.put("dumy2","2"); mapper에서 사용하는 xml에서 사용하는 key에 맞춰 데이터를 전송 해주면 됩니다.

반응형