728x90
#. Class file source
public class SendEmailAction extends ActionSupport {
........
private String statusFlag = null; // 결과 Flag
private String altMessage = null; //사용자에게 보여줄 결과 메시지
@Override
public String execute() throws Exception {
try{
........
}catch (Exception e) {
e.printStackTrace();
setStatusFlag(ERROR);
setAltMessage(getText("mail.message.error"));
return ERROR;
}
setStatusFlag(SUCCESS);
//setAltMessage("메일이 성공적으로 전송되었습니다. 빠른 시일 내에 연락드리겠습니다.");
setAltMessage(getText("mail.message.success"));
return SUCCESS;
}
......
public String getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(String statusFlag) {
this.statusFlag = statusFlag;
}
public String getAltMessage() {
return altMessage;
}
public void setAltMessage(String altMessage) {
this.altMessage = altMessage;
}
}
#. struts.xml
....
<action name="send.email" class="com.prompt.eclix.mail.SendEmailAction" method="execute">
<result>/WEB-INF/jsp/controller.jsp</result>
</action>
.....
#. /WEB-INF/jsp/controll.jsp
<script language="javascript">
var v_flag =
'<%=request.getAttribute("statusFlag")==null?"":(String)request.getAttribute("statusFlag")%>';
var v_altMessage=
'<%=request.getAttribute("altMessage")==null?"":(String)request.getAttribute("altMessage")%>';
if(v_flag == 'error'){
alert(v_altMessage);
location.href="/open.email.action";
}else if( v_flag == 'success'){
alert(v_altMessage);
location.href="/main.action";
}else{
}
</script>
이렇게 하면 결과 페이지에서 서버에서 세팅 해준 메시지를 띄울 수 있다.
메세지를 띄우는 것에 대한 내용은 여기까지이고, 페이지를 로드하는 방식이 Struts 2 를 사용하는 걸 무색하게 한다.
그것에 대한 내용은 "[Struts 2] Token Interceptor 안 쓰고 페이지 분기" 게시글에서.
'Dev > Framework' 카테고리의 다른 글
다국어 Message Resource 브라우져 언어 / 파라미터 처리 설정 #2 (0) | 2013.06.10 |
---|---|
다국어 Message Resource 브라우져 언어 / 파라미터 처리 설정 (0) | 2013.05.16 |
<s:form> 태그 <form> 태그로 변환 되었을 때의 id 속성 값의 변화 (0) | 2010.12.23 |
[Struts 2] Token Interceptor 안 쓰고 페이지 분기 (0) | 2010.12.17 |
[Struts2] 최초 프로젝트 구성 (0) | 2010.12.05 |