본문 바로가기
개발/개인

사용자 정보 상세조회

by areumtb 2016. 11. 1.

 -문제발생 1,2. 는 에러참고


 http://areumtb.tistory.com/7



 상세검색 버튼을 누르면 상세검색 창이 나오고 값을 입력 후 검색을누르면 검색이 되는...




-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;
    }
 

cs

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.... 그리드 리로드하는법을 모르겟다..



여기에 이어서...


댓글