【问题标题】:How to transfer attribute from several JSP pages to be displayed in a Tiles template page如何将多个 JSP 页面中的属性转移到 Tiles 模板页面中显示
【发布时间】:2010-06-16 12:27:44
【问题描述】:

我有一个文件 pageLayout.jsp,其中列出了每个页面的基本结构,包括一个 HTML 标题。


<title>Project Name</title>

我想将每个页面的标题值转移到模板中,而不是静态标题(如上)。例如,如果使用模板的 JSP 页面有这样显示的 H1 元素


<h1>
    <spring:message code="page.manufacturer.list.title" />
</h1>

,我想把上面spring:message标签的值转过来,显示在JSP模板的title标签里面。 spring 消息应该从几个不同的页面(每个页面包含不同的 spring 消息)转移到一个模板页面。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: spring jsp tiles


    【解决方案1】:

    mylayout.jsp

    <html>
      <head>
        <title><tiles:getAsString name="title"/></title>
      </head>
      <body>
        <tiles:insertAttribute name="body" />
      </body>
    </html>
    

    somepage.jsp

    <tiles:insertDefinition name="mylayout">
    <spring:message code="example.message" var="title"/>
    <tiles:putAttribute name="title" value="${title}"/>
    <tiles:putAttribute name="body">
    
    ...
    
    </tiles:putAttribute>
    </tiles:insertDefinition>
    

    【讨论】:

      【解决方案2】:

      这不行吗?

      <title><spring:message code="page.manufacturer.list.title" /></title>
      

      【讨论】:

      • 对于一个页面,是的 - 但我一直在寻找一种通用方法,其中弹簧消息可以从多个页面(每个页面都有不同的弹簧消息)转移到一个模板页面。我已经编辑了问题以澄清这方面。
      【解决方案3】:

      将它直接作为请求参数传递(输入)。确实,没有更好的方法,因为 HTTP 是无状态的。在没有基于请求参数的键的情况下将其置于会话中可能适用于单个选项卡/窗口,但在同一浏览器会话中使用多个选项卡/窗口时可能会导致不良结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-19
        • 2022-01-25
        • 1970-01-01
        相关资源
        最近更新 更多