반응형

오늘은 간단한 팁을 드리려고합니다

보통 submit 방식으로 데이터를 넘긴후 

알림창을띄워줘야할떄가 있습니다.

페이지로 이동해서 해도되지만 ajax 방식이 아니라서 애매하게되죠


검색하면 PrintWriter 라는 클래스를 이용하여 자바단에서 스크립트 조작이 가능합니다

그런데 잘못사용하는 경우가 있습니다


-잘못된 사용의 예


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@RequestMapping(value = "/goregist", method = RequestMethod.POST)
    @ResponseBody
    public ModelAndView OrganRegist(HttpServletRequest request, HttpServletResponse response) throws Exception {
        Map<String, Object> result = new HashMap<String,Object>();
        C_OrganVO vo = new C_OrganVO();
        vo.setT_num(Integer.parseInt(request.getParameter("t_num")));
        vo.setType(request.getParameter("type"));
        vo.setName(request.getParameter("name"));
        vo.setContent(request.getParameter("content"));
        vo.setHomepage(request.getParameter("homepage"));
        vo.setPhone_number(request.getParameter("phone_number"));
        int cnt = c_organService.registC_Organ(vo);
        if(cnt==1){
            result.put("state""success");
            PrintWriter writer = response.getWriter();
            writer.println("<script>alert('Success'); location.href='/helpInfo/update';</script>");
            return new ModelAndView("redirect:/helpInfo/update");
        } else{
            result.put("state""fail");
            result.put("error", egovMessageSource.getMessage("fail.update.information"));
        }
        return new ModelAndView("redirect:/helpInfo/02");
    }
cs


실제로 잘못 사용된 예제를 가져와봤습니다

여기서 보면 

1
2
3
result.put("state""success");
PrintWriter writer = response.getWriter();
writer.println("<script>alert('Success'); location.href='/helpInfo/update';</script>");
cs



이렇게 된 부분이있을건데 잘못사용된 부분입니다

response는 예민한 객체이기 때문에


1
2
3
4
5
6
7
response.setContentType("text/html; charset=UTF-8");
 
PrintWriter out = response.getWriter();
 
out.println("<script>alert('계정이 등록 되었습니다'); location.href='이동주소';</script>");
 
out.flush();
cs


이렇게 사용해주시는것이 올바를 표현방식입니다

이상 사용법설명을 마치겠습니다

반응형

+ Recent posts