2009-04-02 10 views
3

우리는 ActionErrors.add (key, new Actionmessage ("string")), addErrors (request, actionErrors);를 수행하여 Struts에서 오류를 표시 할 수있었습니다.Struts에서 성공 메시지를 표시하는 방법?

Struts에서 성공 메시지를 출력하는 방법은 궁금합니다. 어떻게 평소/전통적으로 그렇게합니까?

답변

1

Struts2를 사용하는 경우 addActionError 대신 addActionMessage를 사용할 수 있어야합니다.

http://struts.apache.org/2.0.14/struts2-core/apidocs/com/opensymphony/xwork2/ValidationAwareSupport.html

게시물이 당신이 당신의 JSP에두고 있었는지없는,하지만 당신은 액션 메시지를 추가하는 경우, 당신은 당신이 추가 된 것을 표시 할 <s:actionmessage/> 태그를 사용할 수 있습니다. 스트럿츠 1 일 당신이 메시지를 표현하기 위해 ActionMessage 인스턴스를 사용할 수 있습니다

http://struts.apache.org/2.0.14/docs/actionmessage.html

10

는 JSP

ActionMessages messages = new ActionMessages(); 
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message1"); 
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message2"); 
saveMessages(request, messages); // storing messages as request attributes 

"message1"와 "message2"에 표시 할 자원 특성 파일에 대한 키입니다. JSP에 메시지를 표시

을 처리 ActionError 매우 유사 행동 오류와 유사하지만 당신은 재산 "메시지"이 예에서

<logic:messagesPresent message="true"> 
    <html:messages id="message" message="true"> 
    <bean:write name="message"/><br/> 
    </html:messages> 
</logic:messagesPresent> 

메시지가 속성 요청으로 저장되었다가 포함되어야합니다. 당신은 속성 이름에 대한 제어를 원한다면 당신은 어떤 속성이

ActionMessages messages = new ActionMessages(); 
messages.add("appMessage", new ActionMessage("message1"); 
saveMessages(request, messages); // storing messages as request attributes 

은 이제 메시지가 요청 속성 "appMessage"에 저장되어있는 이름을 지정할 수 있습니다. 사용자 정의 속성 이름 설정은 JSP에서 Struts 태그 대신 JSTL 태그를 사용하려는 경우 유용 할 수 있습니다.

또한 세션 범위에 작업 메시지를 저장할 수 있습니다.

saveMessages(request.getSession(), messages); // storing messages as request attributes 

이 기능을 사용하여 예를 들어 사용자의 성명과 같이 사용자 세션에서 고정 된 메시지를 표시 할 수 있습니다.

+0

세션에 메시지를 저장하는 마지막 예제에는 Struts 1.2.x 이상이 필요합니다. – Jawa

+1

이것은 모두 정확한 정보가 아닙니다. ActionMessages 객체 만이 요청에 저장된 Bean을가집니다. ActionMessage 객체는 그렇지 않습니다. ActionMessages의 속성을 통해 객체에 액세스해야합니다. 따라서 messages.add (appMessage, ...)를 사용하면 appMessage를 요청 속성으로 추가하지 않습니다. JSP에서 또는 이와 유사한 방식으로 액세스 할 수 없습니다. – KyleM

관련 문제