설문조사 객관식 질문 다건등록오류
- 작성자 :
- 이*기
- 작성일 :
- 2018-05-02 10:46:32
- 조회수 :
- 1,136
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
공통컴포넌트에서 설문조사기능을 테스트 중
첨부한 이미지와 같이 2개 이상의 다건항목 체크를 하게 되면
앞쪽의 항목 1개만 등록이 되는 현상이 발생해서 로그를 찍어보니 값이 하나만 들어오는데
어떤부분을 확인해봐야 하나요?
첨부한 이미지와 같이 2개 이상의 다건항목 체크를 하게 되면
앞쪽의 항목 1개만 등록이 되는 현상이 발생해서 로그를 찍어보니 값이 하나만 들어오는데
어떤부분을 확인해봐야 하나요?
A
안녕하세요 표준프레임워크센터입니다.
문의주신 부분은 설문조사 공통컴포넌트에서 변경이 필요한 부분으로 확인됩니다.
차후 업그레이드 버전에 반영하도록 하겠습니다.
어느부분을 변경하시면 되는지 일단 가이드 해드리도록 하겠습니다.
EgovQustnrRespondInfoController.java를 변경하시면 됩니다.
1. egovQustnrRespondInfoManageRegist() 메소드에서
파라미터가
@ModelAttribute("searchVO") ComDefaultVO searchVO,
@RequestParam Map commandMap,
ModelMap model
로 되어있는 것을
->
@ModelAttribute("searchVO") ComDefaultVO searchVO,
@RequestParam Map commandMap,
HttpServletRequest request,
ModelMap model
로 변경하시면 됩니다.
2.//설문조사 등록 //객관식 답안 처리
주석이 있는 부분에서
if( commandMap.get("TY_"+key).equals("1") ){
if( commandMap.get(key) instanceof String){
sVal = (String) commandMap.get(key);
로 되어있는 것을
->
if( commandMap.get("TY_"+key).equals("1") ){
String[] arrayParam = request.getP arameterValues(key.toString());
if( arrayParam.length == 1 ){
sVal = arrayParam[0];
로 변경하시면 됩니다.
3.그리고 위의 if 문의 else 문에서
}else{
String[] arrVal = (String[]) commandMap.get(key);
로 되어있는 것을
->
}else{
String[] arrVal = arrayParam;
로 변경하시면 됩니다.
1.과정부터 설명드리면
HttpServletRequest request로 받아서 원천데이터를 받는 것입니다.
2.객관식 중 하나만 선택되었을 때 처리로직입니다.
3.객관식 중 두개 이상이 선택되었을 때 처리로직입니다.
감사합니다.
문의주신 부분은 설문조사 공통컴포넌트에서 변경이 필요한 부분으로 확인됩니다.
차후 업그레이드 버전에 반영하도록 하겠습니다.
어느부분을 변경하시면 되는지 일단 가이드 해드리도록 하겠습니다.
EgovQustnrRespondInfoController.java를 변경하시면 됩니다.
1. egovQustnrRespondInfoManageRegist() 메소드에서
파라미터가
@ModelAttribute("searchVO") ComDefaultVO searchVO,
@RequestParam Map commandMap,
ModelMap model
로 되어있는 것을
->
@ModelAttribute("searchVO") ComDefaultVO searchVO,
@RequestParam Map commandMap,
HttpServletRequest request,
ModelMap model
로 변경하시면 됩니다.
2.//설문조사 등록 //객관식 답안 처리
주석이 있는 부분에서
if( commandMap.get("TY_"+key).equals("1") ){
if( commandMap.get(key) instanceof String){
sVal = (String) commandMap.get(key);
로 되어있는 것을
->
if( commandMap.get("TY_"+key).equals("1") ){
String[] arrayParam = request.getP arameterValues(key.toString());
if( arrayParam.length == 1 ){
sVal = arrayParam[0];
로 변경하시면 됩니다.
3.그리고 위의 if 문의 else 문에서
}else{
String[] arrVal = (String[]) commandMap.get(key);
로 되어있는 것을
->
}else{
String[] arrVal = arrayParam;
로 변경하시면 됩니다.
1.과정부터 설명드리면
HttpServletRequest request로 받아서 원천데이터를 받는 것입니다.
2.객관식 중 하나만 선택되었을 때 처리로직입니다.
3.객관식 중 두개 이상이 선택되었을 때 처리로직입니다.
감사합니다.