2014년 5월 21일 수요일

Action과 Message[자바개발자교육/자바교육/자바강좌/자바,]

Action과 Message[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]

웹 애플리케이션에서 사용자의 요청을 받아 비즈니스 로직 처리를 한 후 정상적이든 비정상적이든 메시지를 보여줘야 하는 경우가 있는데 이를 위해 Struts에서는 ActionMessages, ActionErrors를 사용한다. 

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 

ActionForm의 validate() 메소드(struts-config.xml의 action Tag의 validate가 true인 경우 호출 됨)의 Return Type이 ActionErrors인데 프로그램에서 발생하는 에러를 저장해 주는 역할을 한다. ActionErrors는 add() 메소드를 통해 ActionError를 담을 수 있다. 

  

public void add(String property, ActionError error) 

  

이 메소드의 경우 비권장 메소드로 Struts 최신 버전에는 ActionError를 사용하기 보다 ActionMessage를 사용한다. ActionErrors는 ActionForm의 validate()의 반환값으로만 의미가 있는 객체가 되었는데 즉 ActionErrors는 ActionForm의 validate()에서 요청 파라미터를 검증하는 동안 발견된 에러를 ActionMessage에 담아 사용하기 위한 용도로 한정하고 일반적인 사용을 위해서는 ActionMessages를 사용하는 것이 바람직 하다. 

  

public void add(String property, ActionMessage message) 

public void add(ActionMessages messages) 

  

위에서 property라고 하는 것은 ActionMessages, ActionErrors에서 등록된 메시지들 중 하나를 지정하여 보여달라고 하는 경우 ActionMessages 검색 Key 역할을 한다. 

  

그러므로 Action에서 메시지를 생성할 때는 ActionErrors 보다는 ActionMessages를 사용하는 것이 바람직하며 ActionForward를 반환하기 전에 saveMessage()를 이용하여 메시지를 원하는 scope에 저장해야 한다. 

  

if (!isOK) { 

                                //인증 실패 

                                ActionMessages errors = new ActionMessages(); 

                                errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("error.login.invalid")); 

                                saveErrors(request,errors); 

                                return (new ActionForward(mapping.getInput())); 

                    } 

댓글 없음:

댓글 쓰기