본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 71일차 -106

by oncerun 2020. 6. 24.
반응형

검색 엔진에 노출되는 방법.

 

탭에 존재하는 키워드를 변경해야 합니다. 만약 고정됐다면 변경되는 사항에 대해 검색엔진에 노출되지 않습니다.

즉 <head> 영역에 <title>을 노출시켜야 합니다.

 

우라는 tiles 프레임워크를 사용하고 있으므로 타일즈의 layout.jsp를 열어 변경되어야 할 title값을 tiles태그를 이용해 변경합니다.

만약 title이 존재하지 않는다면 도메인 이름이 기본적으로 title이 설정됩니다.

<title><tiles:insertAtrribute name="title" ignore="true"></title>
tiles설정을 기본적으로 강제하지않는 속성입니다. ignore="true"

하지만 title값을 변경되는 값마다 변경되도록 하기 위해 EL표기법을 사용합니다.

그러기 위해서 tiles-el 라이브러리를 의존 설정을 해주어야 합니다.

  <dependency>
  <groupId>org.apache.tiles</groupId>
  <artifactId>tiles-el</artifactId>
  <version>3.0.8</version>
  </dependency>

이제 title이라는 값을 el 설정해주기 위해 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="root.*" template="/WEB-INF/view/inc/layout.jsp">
      <put-attribute name="css" value="" />
      <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
      <put-attribute name="aside" value="/WEB-INF/view/inc/aside.jsp" />
      <put-attribute name="main" value="/WEB-INF/view/{1}.jsp" />
      <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
   </definition>
   <definition name="admin.*.*.*" template="/WEB-INF/view/inc/layout.jsp" >
      <put-attribute name="css" value="" />
      <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
      <put-attribute name="aside" value="/WEB-INF/view/admin/inc/aside.jsp" />
      <put-attribute name="main" value="/WEB-INF/view/admin/{1}/{2}/{3}.jsp" />
      <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
   </definition>
   <definition name="admin.*" template="/WEB-INF/view/inc/layout.jsp">
      <put-attribute name="css" value="" />
      <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
      <put-attribute name="aside" value="/WEB-INF/view/admin/inc/aside.jsp" />
      <put-attribute name="main" value="/WEB-INF/view/admin/{1}.jsp" />
      <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
   </definition>
   <definition name="member.*" template="/WEB-INF/view/inc/layout.jsp">
      <put-attribute name="css" value="/css/member-main.css" />
      <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
      <put-attribute name="aside" value="/WEB-INF/view/member/inc/aside.jsp" />
      <put-attribute name="main" value="/WEB-INF/view/member/{1}.jsp" />
      <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
   </definition>
   <definition name="notice.*" template="/WEB-INF/view/inc/layout.jsp">
      <put-attribute name="css" value="" />
      <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
      <put-attribute name="aside" value="/WEB-INF/view/inc/aside.jsp" />
      <put-attribute name="main" value="/WEB-INF/view/notice/{1}.jsp" />
      <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
   </definition>
</tiles-definitions>

많은 definition 중 admin에 관련된 tiles만 가져와 설정해보겠습니다.

 

  <definition name="admin.*" template="/WEB-INF/view/inc/layout.jsp" preparer="패키지명.tiles설정클래스">
      <put-attribute name="css" value="" />
      <put-attriute name="title" expression="${model.property}">
      <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
      <put-attribute name="aside" value="/WEB-INF/view/admin/inc/aside.jsp" />
      <put-attribute name="main" value="/WEB-INF/view/admin/{1}.jsp" />
      <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
   </definition>

Controller에서 설정한 model의 property값으로 title값을 설정할 수 있게 됩니다.

 

반응형

댓글