리스트에서 상세페이지로 진입 시 이전 페이지의 리스트 조건들을 가지고 있으려고 [xxx]=xxx 이러한 패턴의 형식으로 리스트의 Parameter를 보냈었다.
예 ) objName=pageObj¶ms[searchType]=¶ms[title]=테스트2¶ms[contents]=테스트2&startIndex=1
그리고 다시 리스트로 돌아올 시 Parameter 문자열 중 [xxx]=xxx 이러한 패턴을 찾아 뽑아내어 다시 리스트의 조건에 맞춰 보여주려고 한다.
그래서 해당 패턴을 찾기위해서는 정규식을 사용하였다.
/**
* 문자열중에 [xxx]=xxx 된 패턴을 찾아 Map으로 변경하여 줍니다.
* @param rtnParam
* @return
*/
public static Map<String, Object> getRtnParamMap( String rtnParam ) {
Pattern p = Pattern.compile("\\[.*?\\]=.*?&");
Matcher m = p.matcher(rtnParam);
List<String> paramStrList = new ArrayList<String>();
while (m.find()) {
String val = m.group();
paramStrList.add(val);
}
if( CollectionUtils.isEmpty(paramStrList) ) {
return null;
}
Map<String, Object> rtnParamMap = new HashMap<String, Object>();
for( String paramStr : paramStrList ) {
String key = paramStr.substring(paramStr.indexOf("[") + 1, paramStr.indexOf("]"));
String value = paramStr.substring(paramStr.indexOf("=") + 1, paramStr.indexOf("&"));
rtnParamMap.put( key, value );
}
return rtnParamMap;
}
정규식을 아직 많이 몰라 저 정규식을 만들려고 정규식 테스트 사이트에서 테스트하여 적용을 하였다.
정규식 테스트 사이트 : https://regexr.com/
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com
[Spring/Filter] Filter에 허용한 Ip 이외에는 차단하기. (4) | 2022.05.31 |
---|---|
[Java/Spring] Java Build Path 순서 변경 (0) | 2021.06.23 |
[Spring] 외부 파일 접근하여 다운로드 받기 (0) | 2020.08.24 |
[Spring/오류] Cannot change version of project facet Dynamic Web Module to 2.5. (0) | 2020.07.31 |
[Spring/POI] SXSSF 방식을 활용한 엑셀 다운로드 (0) | 2020.07.28 |
댓글 영역