-문제발생 1,2. 는 에러참고
상세검색 버튼을 누르면 상세검색 창이 나오고 값을 입력 후 검색을누르면 검색이 되는...
-eco_userSearch.jsp
1 2 3 4 5 6 7 8 | <button type="button" data-toggle="modal" data-target="#userDetailedSearch" class="btn">상세검색</button> <!-- Modal --> <div class="modal fade" id="userDetailedSearch" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <jsp:include page="/WEB-INF/views/user/eco_userDetailedSearchPopup.jsp" /> </div> </div> | cs |
-eco_userDetailedSearchPopup.jsp
1 2 3 4 5 | <form action="userDetailedSearch.do" method="post" class="USER_detailedSearch" id="USER_detailedSearch" name="user"> ~ <input type="button" id="" class="btn" data-dismiss="modal" value="검색" onclick="detailedSearch()"> <button id="close" type="button" class="btn" data-dismiss="modal">닫기</button> </form> | cs |
검색 버튼을 누르면 detailedSearch()가 실행
-eco_userSearch.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | // 사용자 상세검색 function detailedSearch(){ alert("detailedSearch()"); //serializeObject() 사용하기위해 $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; };//serializeObject var params = JSON.stringify($("#USER_detailedSearch").serializeObject()); //json형태로 값 보내기 위해 //문제발생 1- 입력창과 수정창에서 한것처럼 serialize() 이용해 form값 controll로 전송하려다 400번 에러 발생 console.log(params); //{"DCODE":"222","NAME":"이름","ENAME":"아이디","PRESENT":"정상회원","POSITION":"직급","DEPARTMENT":"부서"} $.ajax({ url: '/library/userDetailedSearch.do', type: 'POST', data:params, contentType: 'application/json; charset=UTF-8', dataType: 'JSON', success: function(data){ alert("성공"); var emp = data; console.log(JSON.stringify(emp)); },error:function(request,status,error){ alert("code:"+request.status+"\n"+"message:" +request.responseText+"\n"+"error:"+error); alert("실패"); } }); } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // 사용자 상세검색 @RequestMapping(value = "/userDetailedSearch.do", method = RequestMethod.POST, produces = "application/json; charset=UTF-8") public @ResponseBody List<EmployeeVO> userDetailedSearch(EmployeeVO vo, @RequestBody Map<String,Object> map) { //문제발생 2- map으로 받은 값 그대로 진행 해보려다(쿼리에매핑등등) 에러발생 System.out.println("DDD"); System.out.println(map); List<EmployeeVO> emp = null; System.out.println("map.get('DCODE') "+map.get("DCODE")); vo.setDCODE((String)map.get("DCODE")); // (받을때 값을 object형으로 줘서 vo에 담으려면 string형으로 형변환 해줘야 함) vo.setNAME((String)map.get("NAME")); vo.setENAME((String)map.get("ENAME")); vo.setPRESENT((String)map.get("PRESENT")); vo.setPOSITION((String)map.get("POSITION")); vo.setDEPARTMENT((String)map.get("DEPARTMENT")); emp = employeeServiceimp.userDetailedSearch(vo); return emp; } |
1 2 3 4 5 6 7 8 9 10 11 12 | -serviceimp @Override public List<EmployeeVO> userDetailedSearch(EmployeeVO VO) { List<EmployeeVO> result = new ArrayList<>(); EcoLibraryMapper mapper = sqlsesstion.getMapper(EcoLibraryMapper.class); result = mapper.userDetailedSearch(VO); System.out.println("result "+result); return result; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 | <select id="userDetailedSearch" resultMap="EmployeeMapper" parameterType="com.eco.library.dto.EmployeeVO"> SELECT * FROM EMPLOYEE WHERE DCODE like '%'||#{DCODE}||'%' or NAME like '%'||#{NAME}||'%' or ENAME like '%'||#{ENAME}||'%' or PRESENT like '%'||#{PRESENT}||'%' or POSITION like '%'||#{POSITION}||'%' or DEPARTMENT like '%'||#{DEPARTMENT}||'%' </select> | cs |
이렇게 하니까 잘 나오고 ajax로도 잘 넘어옴
1 2 3 4 5 6 | $.ajax({ ~ success: function(data){ alert("성공"); var emp = data; console.log(JSON.stringify(emp));// 잉렇게 변행해줘야 값이 문자로 나옴 (Object -> String형 ) } | c //s |
검색한 조건
{"DCODE":"293","NAME":"양양","ENAME":"입력","PRESENT":"정상회원","POSITION":"양양","DEPARTMENT":"양양"}
검색한 값
[{"bireday":"2016-10-24 00:00:00.0","phone":"55555","position":"입력","present":"사서","ename":"입력","exnum":"555","birthday":"1993-08-30 00:00:00.0","ucode":"84","email":"입력","name":"입력","department":"입력","note":"입력","address":"ㅇㅇ","dcode":"293"},
{"bireday":"2016-10-24 00:00:00.0","phone":"455","position":"희란","present":"정상회원 ","ename":"희란","exnum":"454","birthday":"2016-10-24 00:00:00.0","ucode":"94","email":"희란","name":"희란","department":"희란","note":"희란","address":"희란","dcode":"444"},
{"bireday":"2016-10-31 00:00:00.0","phone":"010","position":"직급","present":"정상회원","ename":"park","exnum":"000","birthday":"2016-10-31 00:00:00.0","ucode":"125","email":"d이메일","name":"박","department":"부서","note":null,"address":"서울","dcode":"222"}]
but.... 그리드 리로드하는법을 모르겟다..
여기에 이어서...
'개발 > 개인' 카테고리의 다른 글
사용자 정보 수정, 상세보기 - modal창 제어(선택된데이터가 있을때 없을때) (0) | 2016.11.02 |
---|---|
사용자 정보 입력하기 - 유효성검사 추가,입력폼 reset (0) | 2016.11.02 |
사내도서대여시스템 - 사용자정보 조회1 (0) | 2016.10.28 |
사내도서대여시스템 - 수정하기 (0) | 2016.10.28 |
사내도서대여시스템 - db값 조회해 jqGrid 뿌리기,입력,삭제 (0) | 2016.10.28 |
댓글