3

Spring MVC 3 と Apache Tiles 3 を使用しています。

ページの 1 つにカスタム タイトルを追加したいと考えています。このタイトルを、レイアウト jsp ではなく、特定のビュー jsp に配置したいと考えています。

これが私がやっていることです:

tiles.xml での定義

<definition name="availability" extends="base.definition">
    <put-attribute name="title" expression="${requestScope.title}"/>
    <put-attribute name="page" value="/WEB-INF/views/availability.jsp" />
</definition>

ここにavailability.jspがあります:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="title" value="Availability" scope="request"/>

これがlayout.jspです(base.definitionで使用)

<title>App::<tiles:getAsString name='title' /></title>

これにより、属性のレンダリング時にタイル レイヤーでヌル ポインター例外が発生します。

ここで提案されているように、リクエストがコントローラーに送信されるときにモデルを介してタイトルを設定できますが、コントローラーではなくビュー JSP 内からこれを行いたいと考えています。

タイルがページを構成してレンダリングする方法では、これは不可能です。そうですか?

4

2 に答える 2

1

これは、カスタム タイトルを使用する方法です (タイルを使用するすべてのページで機能します)。

template.jsp ファイル内:

<title><tiles:insertAttribute name="title" /></title>

あなたのpage.jsp(あなたの場合-availability.jsp)でこれを使用してください:

<tiles:putAttribute name="title" value="PageTitle" />

name = title、値 = PageTitle でページ タイトルを設定します。

追加:

ページのタイトルを messages.properties ファイルに入れて、次のように使用できます。

<tiles:putAttribute name="title">
    <spring:message code="page.title"/>
</tiles:putAttribute>
于 2014-11-30T12:20:36.463 に答える