반응형
보통 받아온 request 파라미터를
@RequestMapping("/main.do")
public String main(HttpServletRequest request) {
String id = request.getParameter("id");
System.out.prinln(id);
return "main";
}
이런식으로 받아오지만
hashmap으로 변형해주는 메소드를 추가하여 좀더 쉽게 사용이 가능하다.
package cms.cmm.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WebUtil
{
/**
* 모든 파라미터를 해시맵으로 리턴
*
* @param request
* @param columns
* @return
*/
public static HashMap<String, Object> getRequestToHashMap( HttpServletRequest request, List<String> columns ) {
// 실제 존재?하는 컬럼만 파라미터로 넘기기 위해..
boolean hasColumns = false;
if( columns != null && columns.size() > 0 )
hasColumns = true;
Enumeration<String> enums = request.getParameterNames();
HashMap<String, Object> model = new HashMap<String, Object>();
while( enums.hasMoreElements() ) {
String name = enums.nextElement();
boolean addToModel = false;
// 컬럼이 정의된 경우 선택적으로(정의되어 있는 파라미터) model 에 추가
if( hasColumns ) {
// 효과적으로 체크할 방법 결정하고, 우선 루프
for( int i = 0; i < columns.size(); i++ ) {
if( name.equals( columns.get( i ) ) ) {
addToModel = true;
break;
}
}
}
else {
addToModel = true;
}
// 파라미터를 모델에 추가
if( addToModel ) {
String[] values = request.getParameterValues( name );
if( values.length == 1 ) {
model.put( name, request.getParameter( name ) );
}
else {
model.put( name, values );
}
}
}
return model;
}
/**
*
* @param request
* @return
* @see getRequestToHashMap( HttpServletRequest request, List<String> columns )
*/
public static HashMap<String, Object> getRequestToHashMap( HttpServletRequest request ) {
return getRequestToHashMap( request, null );
}
}
공통 class로 따로 빼고
@RequestMapping(value="/ims/site/test.do")
public String selectvisualList( ModelMap model
, HttpServletRequest request
, HttpServletResponse response ) throws Exception {
//모든 파라메터 *******
HashMap<String, Object> param = WebUtil.getRequestToHashMap( request ); //request hashmap으로 변형
//**************
// list 페이지로 갈때 사용할 파라메터
String schString = WebUtil.getRequestToQueryString( request, searchParam );
if(!param.containsKey("sKey")){
param.put("sKey", "1");
}
int pageSize = StringUtil.toInt( param.get( "pageSize" ), 10 );
// 전체 레코드 수
int listCount = testService.getListCount(param);
// Paging 정보 설정한다 ( getList 전에 호출해야 함 )
SetPager(model, param, listCount);
//최종목록
List<HashMap<String, Object>> list = testService.getList( param );
model.addAttribute( "list", list );
model.addAttribute( "schString", schString );
return "/siteMng/test/list";
}
사용할 컨트롤러에서
HashMap<String, Object> param = WebUtil.getRequestToHashMap( request );
를 사용하여 받아온 requset 파라미터들을 hashmap으로 변경 시켜준다.
변경된 파라미터를 바로 testService.list(param); 으로 사용이 가능하기에 좀더 편하게 사용이 가능하다

request로 받아온 sKey 변수 하나가 hashmap형태로 들어갔다.
반응형
'개발노트' 카테고리의 다른 글
| ajax form 한번에 보내기 (0) | 2022.07.14 |
|---|---|
| JAVA 접속자 IP 가져오기 (0) | 2022.06.16 |
| .each문으로 td값 비교 (0) | 2022.05.12 |
| 버튼으로 테이블 tr, td 제어하기 (0) | 2022.05.10 |
| NICE 인증 크로스도메인 에러 (0) | 2022.05.09 |