Struts에서의 VIEW
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
www.onjprogramming.co.kr Struts Framework에서 VIEW의 역할은 대부분 JSP가 수행 하며 커스텀태그,HTML,JSP의 조합으로 VIEW 를 만들어 낼 수 있습니다.
JSP기술은 개발자가 JSP안의 스크립틀릿에 비즈니스 로직을 마음대로 추가 할 수 있으므로 유지보스를 어렵게 하며 개발자가 JSP문법 뿐 아니라 커스텀태그의 사용법까지 알고 있어야 하는 단점이 있습니다. 또한 변경 후 다시 시작하는 경우 JSP 페이지를 다시 컴파일 해야 합니다.
Struts에서 사용 가능한 태그라이브러리는 HTML, Bean, Logic, Template, Nested, Tiles 6가지가 있습니다. 각 태그라이브러리는 서로 다른 역할을 하며 독립적으로 사용 가능 합니다. 또한 사용자가 새로운 커스텀 태그를 만들어 사용하는 것도 가능 합니다.
이전 로그인 예제(3)에서 사용자가 main.jsp에 접근 할 때 인증을 한 사용자인지의 여부를 검사하는 것을 커스텀 태그를 이용하여 만들어 봤습니다.
스트럿츠에서 제공하는 태그 라이브러리를 사용 하려면 web.xml에 등록해야 하는데 아래는 web.xml 파일의 내용 입니다.
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
다음으로 해야 할 일은 JSP 페이지에서 taglib 지시자를 추가 하는 것입니다.
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
다음은 스트럿츠에서 제공 하는 커스텀 태그를 이용한 login.jsp 입니다.
<%@ page language="java" %>
<%@ page pageEncoding="euc-kr" %>
<!-- 최초 사용자가 접속하게 되는 페이지 입니다. -->
<!-- 아래는 import와 동일한 기능을 하는 태그로 태그 확장을 사용 할 수 있도록 합니다 -->
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/app.tld" prefix="login" %>
<!-- 인증이 안된 사용자는 login.jsp로 보내 버립니다. -->
<login:IsLogin/>
<html>
<head>
<title><bean:message key="main.title" /></title>
<html:base/>
</head>
<body>
<h3>반갑습니다.<bean:write name="user" property="id"/>님!</h3>
<ul>
<li>
<html:link forward="logoff">로그아웃</html:link>
</li>
</ul>
<body>
</html>
댓글 없음:
댓글 쓰기