Action처리 후 다음 View 결정하기
Action 클래스의 execute() 메소드를 보시면 Return형이 org.apache.struts.action.ActionForward임을 알 수 있습니다. ActionForward 클래스는 execute()메소드가 종료된 후 Controller에서 제어를 넘길 곳을 지정 합니다.
또한 코드 내에서 실제 파일명을 주는 대신 ActionForward 매핑에 JSP페이지(View)를 할당하고 이 ActionForward를 웹 애플리케이션 전체에서 사용 가능 하게 할 수 있습니다.
아래는 struts-config.xml 파일 내의 ActionForward 매핑 예 입니다.
<global-forwards>
<forward name="success" path="/main.jsp" />
<forward name="logoff" path="/logoff.do" />
<forward name="login" path="/login.jsp" />
</global-forwards>
또는 어떠한 Action에서만 Actionforward를 참조하게 하기 위해서는 다음과 같이 할 수도 있습니다.
<action
Path=”/LoginSunmit”
Type=”login2.LoginAction”
Scope=”request”>
<forward name=”SUCCESS” path=”/success.jsp” redirect=”true”/>
</action>
위에서 redirect를 true로 했으므로 이 경우엔 forward가 아니라 redirection을 이용합니다.
아래는 로그인 예제의 LogoffAction.java(로그오프 Action 처리) 입니다.
package login2;
import org.apache.struts.action.Action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import login2.LoginForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LogoffAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
//필요한 어트리뷰트를 뽑아 냅니다.
//LoginAction에서 사용자의 로그온개체를 Consants.USER_KEY라는 이름으로 세션에 저장
HttpSession session = request.getSession();
UserInfoVO userinfo = (UserInfoVO)session.getAttribute(Constants.USER_KEY);
if (userinfo != null) {
//로그를 남기자
StringBuffer buf = new StringBuffer("User Logout : " + userinfo.getId());
servlet.log(buf.toString());
}
//사용자의 로그인을 삭제, session.invaidate() 의 경우 션의 모든 것을 무효화 시킴.
session.removeAttribute(Constants.USER_KEY);
//성공적으로 처리 되었음을 알림
return (mapping.findForward(Constants.SUCCESS));
}
}
Action 클래스의 execute() 메소드를 보시면 Return형이 org.apache.struts.action.ActionForward임을 알 수 있습니다. ActionForward 클래스는 execute()메소드가 종료된 후 Controller에서 제어를 넘길 곳을 지정 합니다.
또한 코드 내에서 실제 파일명을 주는 대신 ActionForward 매핑에 JSP페이지(View)를 할당하고 이 ActionForward를 웹 애플리케이션 전체에서 사용 가능 하게 할 수 있습니다.
아래는 struts-config.xml 파일 내의 ActionForward 매핑 예 입니다.
<global-forwards>
<forward name="success" path="/main.jsp" />
<forward name="logoff" path="/logoff.do" />
<forward name="login" path="/login.jsp" />
</global-forwards>
또는 어떠한 Action에서만 Actionforward를 참조하게 하기 위해서는 다음과 같이 할 수도 있습니다.
<action
Path=”/LoginSunmit”
Type=”login2.LoginAction”
Scope=”request”>
<forward name=”SUCCESS” path=”/success.jsp” redirect=”true”/>
</action>
위에서 redirect를 true로 했으므로 이 경우엔 forward가 아니라 redirection을 이용합니다.
아래는 로그인 예제의 LogoffAction.java(로그오프 Action 처리) 입니다.
package login2;
import org.apache.struts.action.Action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import login2.LoginForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LogoffAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
//필요한 어트리뷰트를 뽑아 냅니다.
//LoginAction에서 사용자의 로그온개체를 Consants.USER_KEY라는 이름으로 세션에 저장
HttpSession session = request.getSession();
UserInfoVO userinfo = (UserInfoVO)session.getAttribute(Constants.USER_KEY);
if (userinfo != null) {
//로그를 남기자
StringBuffer buf = new StringBuffer("User Logout : " + userinfo.getId());
servlet.log(buf.toString());
}
//사용자의 로그인을 삭제, session.invaidate() 의 경우 션의 모든 것을 무효화 시킴.
session.removeAttribute(Constants.USER_KEY);
//성공적으로 처리 되었음을 알림
return (mapping.findForward(Constants.SUCCESS));
}
}
오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com
평일주간(9:30~18:10) 개강
(7/28)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/28)[기업100%환급]안드로이드개발자과정
(8/04)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(8/04)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(8/08)[기업100%환급]SQL기초에서 Schema Object까지
(8/08)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(8/11)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
평일야간(19:00~21:50) 개강
(7/24)SQL기초에서실무까지
(7/29)안드로이드개발자과정
(7/29)Spring3.X, MyBatis, Hibernate실무과정
(8/04)웹퍼블리싱 마스터
(8/05)JSP,Ajax,jQUERY,Spring,MyBatis,Hibernate속성과정
(8/08)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(8/28)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
주말(10:00~17:50) 개강
(7/26)Spring3.X, MyBatis, Hibernate실무과정
(7/26)개발자를위한PLSQL,SQL튜닝,힌트
(8/02)C#,ASP.NET마스터
(8/02)웹퍼블리싱 마스터
(8/02)SQL초보에서 Schema Object까지
(8/09)안드로이드개발자과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/23)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지
www.oraclejavacommunity.com
평일주간(9:30~18:10) 개강
(7/28)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/28)[기업100%환급]안드로이드개발자과정
(8/04)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(8/04)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(8/08)[기업100%환급]SQL기초에서 Schema Object까지
(8/08)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(8/11)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
평일야간(19:00~21:50) 개강
(7/24)SQL기초에서실무까지
(7/29)안드로이드개발자과정
(7/29)Spring3.X, MyBatis, Hibernate실무과정
(8/04)웹퍼블리싱 마스터
(8/05)JSP,Ajax,jQUERY,Spring,MyBatis,Hibernate속성과정
(8/08)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(8/28)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
주말(10:00~17:50) 개강
(7/26)Spring3.X, MyBatis, Hibernate실무과정
(7/26)개발자를위한PLSQL,SQL튜닝,힌트
(8/02)C#,ASP.NET마스터
(8/02)웹퍼블리싱 마스터
(8/02)SQL초보에서 Schema Object까지
(8/09)안드로이드개발자과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/23)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지
댓글 없음:
댓글 쓰기