HTMlTagFilter에서 @RequestParam 관련 다시 질문드립니다.
- 작성자 :
- i******n
- 작성일 :
- 2021-03-16 22:09:14
- 조회수 :
- 4,683
- 구분 :
- 공통컴포넌트 / 3.5
- 진행상태 :
- 완료
Q
지난 답변 감사합니다.
답변 주신대로 해당 Filter를 사용하고 있고 web.xml에도 설정되어 있습니다.
첨부파일은 제가 사용하고 있는 Filter 소스입니다.
아래는 설정부분고 controller 호출부분입니다.
web.xml
=========================================================
<filter>
<filter-name>HTMLTagFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.HTMLTagFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HTMLTagFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
=========================================================
controller
@RequestMapping(value="/mypage/cmps/info/saveCmpsAllInfo.do", method = RequestMethod.POST)
public String saveCmpsProAllInfo(@RequestParam Map<String, Object> param, MultipartHttpServletRequest request, HttpServletResponse response, HttpSession session, ModelMap model) throws Exception {
그런데 실제 실행해 보고 디버깅해 보면
아래 for문 내로 들어가지를 않습니다.
for문 한번도 실행되지 않고 바로 빠져 나가버립니다.
public Map<String, String[]> getParameterMap() {
Map<String, String[]> valueMap = super.getParameterMap();
String[] values;
for( String key : valueMap.keySet() ){
values = valueMap.get(key);
for (int i = 0; i < values.length; i++) {
if (values[i] != null) {
values[i] = getSafeParamData(values[i]);
//System.out.println( "[HTMLTagFilter getParameterMap] "+ key + "===>>>"+values[i] );
} else {
values[i] = null;
}
}
//System.out.println( String.format("키 : %s, 값 : %s", key, valueMap.get(key)) );
}
return valueMap;
}
답변 주신대로 해당 Filter를 사용하고 있고 web.xml에도 설정되어 있습니다.
첨부파일은 제가 사용하고 있는 Filter 소스입니다.
아래는 설정부분고 controller 호출부분입니다.
web.xml
=========================================================
<filter>
<filter-name>HTMLTagFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.HTMLTagFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HTMLTagFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
=========================================================
controller
@RequestMapping(value="/mypage/cmps/info/saveCmpsAllInfo.do", method = RequestMethod.POST)
public String saveCmpsProAllInfo(@RequestParam Map<String, Object> param, MultipartHttpServletRequest request, HttpServletResponse response, HttpSession session, ModelMap model) throws Exception {
그런데 실제 실행해 보고 디버깅해 보면
아래 for문 내로 들어가지를 않습니다.
for문 한번도 실행되지 않고 바로 빠져 나가버립니다.
public Map<String, String[]> getParameterMap() {
Map<String, String[]> valueMap = super.getParameterMap();
String[] values;
for( String key : valueMap.keySet() ){
values = valueMap.get(key);
for (int i = 0; i < values.length; i++) {
if (values[i] != null) {
values[i] = getSafeParamData(values[i]);
//System.out.println( "[HTMLTagFilter getParameterMap] "+ key + "===>>>"+values[i] );
} else {
values[i] = null;
}
}
//System.out.println( String.format("키 : %s, 값 : %s", key, valueMap.get(key)) );
}
return valueMap;
}
환경정보
-
- OS 정보 : window
- 표준프레임워크 버전 : 3.8.0
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat
- DB 정보 : marid db
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
센터에서 해당 테스트시
정상적으로 동작하는것을 확인하였습니다.
한가지 예상되는 부분은
FileUpload를 위하여 Multipart로 전송하는경우
기본적으로 Filter를 타지 않습니다.
이경우 다음과 같이 MultipartFilter를 적용하셔야
정상적으로 동작이 가능합니다.
import org.springframework.web.multipart.support.MultipartFilter;
MultipartFilter springMultipartFilter = new MultipartFilter();
springMultipartFilter.setMultipartResolverBeanName("multipartResolver");
FilterRegistration.Dynamic multipartFilter = servletContext.addFilter("springMultipartFilter", springMultipartFilter);
multipartFilter.addMappingForUrlPatterns(null, false, "*.do");
감사합니다.
표준프레임워크센터 입니다.
센터에서 해당 테스트시
정상적으로 동작하는것을 확인하였습니다.
한가지 예상되는 부분은
FileUpload를 위하여 Multipart로 전송하는경우
기본적으로 Filter를 타지 않습니다.
이경우 다음과 같이 MultipartFilter를 적용하셔야
정상적으로 동작이 가능합니다.
import org.springframework.web.multipart.support.MultipartFilter;
MultipartFilter springMultipartFilter = new MultipartFilter();
springMultipartFilter.setMultipartResolverBeanName("multipartResolver");
FilterRegistration.Dynamic multipartFilter = servletContext.addFilter("springMultipartFilter", springMultipartFilter);
multipartFilter.addMappingForUrlPatterns(null, false, "*.do");
감사합니다.