Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 弹簧&x2B;平铺:从视图中设置页面标题_Jsp_Spring Mvc_Apache Tiles - Fatal编程技术网

Jsp 弹簧&x2B;平铺:从视图中设置页面标题

Jsp 弹簧&x2B;平铺:从视图中设置页面标题,jsp,spring-mvc,apache-tiles,Jsp,Spring Mvc,Apache Tiles,我正在使用SpringMVC3和ApacheTiles 3 我想为我的一个页面添加自定义标题。我希望此标题位于特定视图jsp中,而不是布局jsp中 以下是我正在做的: tiles.xml中的定义 <definition name="availability" extends="base.definition"> <put-attribute name="title" expression="${requestScope.title}"/> <put-

我正在使用SpringMVC3和ApacheTiles 3

我想为我的一个页面添加自定义标题。我希望此标题位于特定视图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>

这是可用性。jsp:

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

这是layout.jsp(由base.definition使用)

App::
渲染属性时,这会导致平铺层中出现空指针异常

当请求按照建议发送到我的控制器时,我可以通过模型设置标题,但我希望从视图JSP而不是控制器中进行设置


看起来,瓷砖组成和呈现页面的方式,这是不可能的。是这样吗

如果availability.jsp是在layout.jsp之后呈现的,则这是不可能的 如果不能更改顺序,那么我建议使用javascript更新dom中的title元素

否则,您应该考虑封装模板及其值。 也就是说,“title”元素应该在一个名为title.jsp(或head.jsp)的模板中,您可以为每个请求使用特定的title.jsp。
(每个不同的title.jsp不需要单独的定义!)

这就是如何使用自定义标题(它适用于所有使用平铺的页面):

在template.jsp文件中:

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

在您的page.jsp(在您的例子中是-availability.jsp)中,使用以下命令:

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

名称=标题,通过值=页面标题设置页面标题

额外:

您可以将页面标题放在messages.properties文件中,然后按如下方式使用:

<tiles:putAttribute name="title">
    <spring:message code="page.title"/>
</tiles:putAttribute>