使用Struts 2在JSP中的动态工具提示



我正在尝试将工具提示添加到一系列按钮中。文本是动态的,因为它需要一个参数(显示一个页码的文本),并且存储在global.properties中:

page.nr.tooltip=Go to page {0}

我已经尝试过几件事,什么都不起:

title="<s:text name='page.nr.tooltip'>
        <s:param value='pageNum' />
        </s:text>"

我还尝试了设置一个变量并使用该变量:

<s:set var="ttStr" value="<s:text name='page.nr.tooltip'>
        <s:param value='pageNum' />
        </s:text>" />

,但我似乎也无法将其用作工具提示文本。尝试了这些(以及更多)

value="ttStr"
value="$ttStr"
value="#attr[#ttStr]"

不会显示文本。有什么建议么?JavaScript是不可能的,因为该应用程序必须在JS关闭的浏览器中运行。我可能缺少一些非常简单的东西...

编辑:

猜猜我需要澄清一下: pageNum是我设置的变量:

<s:set var="pageNum" value="..." />

这是有效的,因为我可以使用它并且具有正确的值。我想将pageNum作为变量添加到Tooltip-Text中,类似的内容:

<s:submit type="button" class="..."
   title="<s:text name='page.nr.tooltip'>
             <s:param value='pageNum' />
          </s:text>">
...

这不会呈现工具提示。Go to page 4&quot(或任何价值pagenum拥有的任何价值)。它呈现为"<s:text name='page.nr.tootip' ...&quot - 换句话说,从上面的示例中引号中的确切文本。我知道如何设置和使用动作类中的变量 - 但是在这里无济于事。标题 - 属性不会呈现"到"页面。根本。即使我只是写

<s:submit type="button" class="..."
       title="<s:text name='page.nr.tooltip'/>"

它显示<s:text name='page.nr.tooltip'/>作为工具提示文本。惊讶的是这对我不起作用。

您不能在另一个标签属性中使用标签。使用<s:text>标签的var属性将值推到值堆栈。然后使用OGNL在<s:submit>title属性中获取此值。

<s:text var="pageTooltip" name="page.nr.tooltip">
    <s:param value="#pageNum"/>
</s:text>
<s:submit type="button" title="%{#pageTooltip}"/>

以下是从支柱本地化指南:

struts.properties

中的全球资源(struts.custom.i18n.resources

也可以通过编程指定一个全局资源捆绑包作为语言环境。

您还可以在struts.xml

中设置常数
<constant name="struts.custom.i18n.resources" value="/resources/global"/>

变量pageNum应该有一个getter返回参数的值

<s:text name='page.nr.tooltip'>
  <s:param value='pageNum' />
</s:text>

此代码将将消息文本渲染到OUT。如果您需要将此文本设置为一个支撑标签之一属性,则应使用OGNL。不要在属性内嵌套struts2标签。

<s:submit type="button" class="..."
   title="%{getText('page.nr.tooltip', {pageNum})}" />

要使用getText操作应实现ActionSupportTextProvider。如果您的操作类扩展了ActionSupport,则可以使用TextProvider的默认实现并可以使用上面的代码。

相关内容

  • 没有找到相关文章

最新更新