tiles 세부페이지 세팅

boingboing·2023년 7월 24일
@RequestMapping(value = "/test", method = RequestMethod.GET)
  public String hello(Locale locale, Model model) {

  Date date = new Date();
  DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

  String formattedDate = dateFormat.format(date);

  model.addAttribute("serverTime", formattedDate );
  return "tiles";
  }
<!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="default" template="/WEB-INF/views/layout/layout.jsp">
  <put-attribute name="header" value="/WEB-INF/views/layout/header.jsp" />
  <put-attribute name="body" value=""/>
  <put-attribute name="footer" value="/WEB-INF/views/layout/footer.jsp" />
  </definition>

  //기본적인 defiinition 태그를 하나 만들어둔다.

  <definition name="tiles" extends="default">
   <put-attribute name="body" value="/WEB-INF/views/layout/mainTest.jsp" />
  </definition>

//  defiinition 을 상속받아 여러 타일즈를 만들수 있다.

</tiles-definitions>
  • Controller의 리턴 값과 tiles의 definition의 name과 이름이 같거나, 패턴이 일치해야 함

패턴

패턴1

<definition name="*" extends="base-definition">
    <put-attribute name="title" value="Welcome" />
    <put-attribute name="body" value="/WEB-INF/views{1}.jsp" />
</definition>
  • name을 "*"로 변경하면, 들어오는 모든 값을 {1} 로 치환을 하게 됨.

패턴2

  • 컨트롤러의 요청 URL이 "/info/info01.do"가 되면, 뷰를 찾기 위한 반환 값은 "info/info01" 임. 뷰 페이지는 "/WEB-INF/views/info/info01.jsp" 임.
@RequestMapping(value = "/info/info01.do", method = RequestMethod.GET)
public String info01(Model model) {
    return "info/info01";
}

이걸 설정하기 위해 tiles 관련 xml에 차음 추가


<definitio name="*/*" extends="base-definition">
  <put-attribute name="title" value="Welcome" />
  <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp"/>
</definition>

반드시 name과 동일한 패턴을 사용해야 하는 것은 아님.

https://sjh836.tistory.com/133
https://offbyone.tistory.com/10
https://ram2ram2.tistory.com/6

0개의 댓글