2011-09-30 3 views
6

스프링 3 및 타일 2.2.2를 사용하는 데 문제가 있습니다. 동적 페이지 제목을 표시 할 수 없습니다. 이 내 설정/JSP 파일입니다스프링 3 및 아파치 타일을 사용하여 동적 페이지 제목을 표시 할 수 없습니다.

layout.jsp

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
     <title><tiles:getAsString name="title" ignore="true"/></title> 
    </head> 

    <body> 
     <tiles:insertAttribute name="header" /> 
     <div id="content-outer"> 
      <div id="content-wrapper" class="container_16"> 
       <tiles:insertAttribute name="body" /> 
       <tiles:insertAttribute name="menu" /> 
      </div> 
     </div> 
     <tiles:insertAttribute name="footer" /> 
    </body> 
</html> 

스프링 설정 파일 :

<bean id="tilesviewResolver" 
    class="org.springframework.web.servlet.view.tiles2.TilesViewResolver"> 
    <property name="order" value="0" /> 
    <property name="requestContextAttribute" value="requestContext" /> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.tiles2.TilesView" /> 
</bean> 
<bean id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
    <property name="tilesProperties"> 
     <props> 
      <prop key="org.apache.tiles.evaluator.AttributeEvaluator">org.apache.tiles.evaluator.el.ELAttributeEvaluator 
      </prop> 
     </props> 
    </property> 
</bean> 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE tiles-definitions PUBLIC 
     "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 
     "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 
<tiles-definitions> 
    <definition name="base.definition" template="/WEB-INF/views/layout.jsp"> 
     <put-attribute name="title" value="" /> 
     <put-attribute name="header" value="/WEB-INF/views/inc/header.jsp" /> 
     <put-attribute name="menu" value="/WEB-INF/views/inc/menu.jsp" /> 
     <put-attribute name="body" value="" /> 
     <put-attribute name="footer" value="/WEB-INF/views/inc/footer.jsp" /> 
    </definition> 

    <definition name="item/itemDetail" extends="base.definition"> 
     <put-attribute name="title" value="%{title}"/> 
     <put-attribute name="body" value="/WEB-INF/views/item/itemDetail.jsp" /> 
    </definition> 

</tiles-definitions> 
tiles.xml

페이지 제목이 % {title} 대신 컨트롤러에서 렌더링 한 제목 값으로 대체되지 않습니다.

<definition name="item/itemDetail" extends="base.definition"> 
    <put-attribute name="title" expression="${title}"/> 
    <put-attribute name="body" value="/WEB-INF/views/item/itemDetail.jsp" /> 
</definition> 

는 당신이 확신 :

덕분에 사전에

+0

컨트롤러를 게시 하시겠습니까? – Ralph

+1

당신이 눈치 채지 못했던 타일 기능을 사용하고 있다면 타일 정의에서 "제목"변수를 사용하는 방법을 설명하는 설명서의 힌트를 추가하십시오. – Ralph

답변

6

나는 당신의 페이지 정의는 다음과 같이합니다 ('표현'속성 대신에 '%'의 '$'를 참고)해야한다고 생각 관련 범위에 $ {title}이라는 속성이 있습니까? itemDetail.jsp 페이지에서 $ {title}의 값을 직접 렌더링 해 보았습니까?

다음은 관련 설명서입니다. 타일은 서블릿 컨테이너의 EL 지원을 사용하여 http://tiles.apache.org/2.1/framework/tutorial/advanced/el-support.html입니다.

+0

expression = "$ {title}"- 몇 시간 동안 이것을 찾고있었습니다 !!! 좋아, 고마워! – ducin

관련 문제