728x90
나스에 해당파일 url -> 이클립스_오라클_전자정부셋팅(포탈버전)-> tiles설정 위치
pom.xml 에 사용한것들은 5가지지만 공식문서에는 하나만 사용
<!-- 기본layout 설정 maven start-->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>3.0.8</version>
</dependency>
<!-- 기본layout 설정 maven end-->
web.xml에 추가할 것
<!-- tiles 관련 설정 추가 시작 -->
<listener>
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>
<servlet>
<servlet-name>Tiles Dispatch Servlet</servlet-name>
<servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Tiles Dispatch Servlet</servlet-name>
<url-pattern>*.tiles</url-pattern>
</servlet-mapping>
<!-- tiles 관련 설정 추가 끝 -->
egovframework샘플밖으로 servlet.xml 과 tiles.xml 을 만들어줌

cms-servlet.xml 내용
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- 패키지 내 Controller, Service, Repository 클래스의 auto detect를 위한 mvc 설정 -->
<context:component-scan base-package="egovframework">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<!-- 패키지 내 Controller, Service, Repository 클래스의 auto detect를 위한 mvc 설정 -->
<context:component-scan base-package="cms">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<!-- 서블릿컨네이너상의 exception에 대한 오류 페이지를 연결하는 mvc 설정 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="cmm/error/egovError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">cmm/error/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">cmm/error/transactionFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmm/error/egovError</prop>
<prop key="org.springframework.security.AccessDeniedException">cmm/error/accessDenied</prop>
</props>
</property>
</bean>
<!-- 화면처리용 JSP 파일명의 prefix, suffix 처리에 대한 mvc 설정 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
<!-- Annotation 을 사용하지 않는 경우에 대한 MVC 처리 설정 -->
<mvc:view-controller path="/cmmn/validator.do" view-name="cmmn/validator"/>
<mvc:annotation-driven/>
</beans>
tiles.xml에 들어갈 내용
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<!-- 1. 기본적인 템플릿을 생성한다.
header, body, footer를 가진 teamplate.jsp라는 기본 레이아웃을 정의한다.
이 정의된 레이아웃의 name속성인 base를 상속하여 추가적으로 여러 tiles들을 만들수 있다.
-->
<definition name="base" template="/WEB-INF/tiles/template.jsp">
<put-attribute name="header" value="/WEB-INF/tiles/headerLayout.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/tiles/footerLayout.jsp" />
</definition>
<!-- name하나 더 추가 (예: <definition name="base" ) -->
<!-- 2. base를 상속받은것.
즉, body부분만 설정한 경로대로 갈아 끼우고, 나머지 header, footer는 base의 형식대로 상속받아 오는 것이다. -->
<definition name="*" extends="base">
<put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />
</definition>
<definition name="*/*" extends="base">
<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />
</definition>
<definition name="*/*/*" extends="base">
<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />
</definition>
<!-- 메뉴 미표시
: 페이지 중 로그인페이지 같은건 보통 header, footer모두를 레이아웃으로 가지지 않을 것이다.
다만, header에 js라이브러리등을 포함하고 있을 것이므로 이런 특정경로의 jsp파일들은 header만 상속받고 footer는 사용하지 않는 방식으로 할 수 있다.
-->
<!-- <definition name="baseEmpty" template="/WEB-INF/tiles/templateEmpty.jsp">-->
<!-- </definition>-->
<!-- <definition name="*.part" extends="baseEmpty">-->
<!-- <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />-->
<!-- </definition>-->
<!-- <definition name="*/*.part" extends="baseEmpty">-->
<!-- <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />-->
<!-- </definition>-->
<!-- <definition name="*/*/*.part" extends="baseEmpty">-->
<!-- <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}.jsp" />-->
<!-- </definition>-->
</tiles-definitions>

index.jsp 에 추가
<script type="text/javaScript">document.location.href="<c:url value='/main/mainView.do'/>"</script>
해당 컨트롤러와 만들어 주면 됨
안돼서 다시 수정했음

cms-servlet.xml 에 추가
<!-- Tiles 설정 -->
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<property name="order" value="1" />
</bean>
<!-- Tiles Configurer -->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/config/tiles.xml</value>
</list>
</property>
<property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory"/>
</bean>
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="2"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
cms-servlet.xml 에서 tiles.xml 에 연결 시켜주고
이것들 다시 추가
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
...
<definition name="MAIN.layout" template="/WEB-INF/tiles/template.jsp">
<put-attribute name="header" value="/WEB-INF/tiles/headerLayout.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/tiles/footerLayout.jsp" />
</definition>
<!-- name하나 더 추가 (예: <definition name="base" ) -->
<!-- 2. base를 상속받은것.
즉, body부분만 설정한 경로대로 갈아 끼우고, 나머지 header, footer는 base의 형식대로 상속받아 오는 것이다. -->
<definition name="MAIN.*" extends="MAIN.layout">
<put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />
</definition>
<definition name="MAIN.*/*" extends="MAIN.layout">
<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />
</definition>
<definition name="MAIN.*/*/*" extends="MAIN.layout">
<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />
</definition>
...
</tiles-definitions>
그리고
컨트롤에서 MAIN. 으로 시작하면 template.jsp 여기로 가게끔 template="" 에 추가
그리고 컨트롤에서 주소 MAIN. 으로 jsp주소를 적어야 타일즈 적용이 됨
@Controller
@RequestMapping("main")
public class MainController {
@RequestMapping("/mainView.do")
public String headlayout(){
return "MAIN.main/mainView";
}
}
그리고 template.jsp 에서


테그라이브러리 타일즈 추가하고
여기에 tiles 네임지정한것들을 넣어주면 그 네임에 지정된주소 jsp를 가지고 저 자리에 들어감
728x90
'BACK > Tool Setting' 카테고리의 다른 글
| [IntelliJ] 에디터 파일포맷 인식 오류 해결방법 (0) | 2023.02.12 |
|---|---|
| was 배포시 tomcat 404 설정 (0) | 2023.01.08 |
| node.js 설치배포 사용법 (0) | 2023.01.08 |
| <maven 빌드> StandardHost.StandardContext [오류] (0) | 2023.01.08 |
| 전자정부프레임워크 -> 인텔리제이 붙이기 (메이븐 3.8.1 http 에러해결) (0) | 2023.01.08 |
댓글