【问题标题】:How to use <spring:message> inside an attribute of <form:input>?如何在 <form:input> 的属性中使用 <spring:message>?
【发布时间】:2011-07-13 12:53:14
【问题描述】:

我有类似的 JSP 代码:

<div class="formRow">
    <form:input id="email_email" name="email_email" title="XXXXX"/>" path="email" cssClass="input required email" />
    <form:errors path="email" cssClass="error" />
</div>

我想用一些工具提示文本设置title 属性,支持i18n。我该怎么做?

我想做这样的事情:

<div class="formRow">
    <form:input id="email_email" name="email_email" title="<spring:message code="tooltip.text" />"/>" path="email" cssClass="input required email" />
    <form:errors path="email" cssClass="error" />
</div>

【问题讨论】:

    标签: java spring jsp spring-mvc


    【解决方案1】:
    <spring:message code="tooltip.text" var="variable1"/>
    <form:input id="email_email" name="email_email" title="${variable1}" path="email" 
                          cssClass="input required email" />
    

    您不能在属性内使用标签: 但是你可以使用上面的。它工作正常。

    【讨论】:

    • 重复的答案获得了更多的支持。 面部护理
    【解决方案2】:

    您不能简单地在标签内使用标签。你可以这样做,

    <spring:message code="tooltip.text" var="i18nTooltip"/> 
    <form:input id="email_email" name="email_email" title="${i18nTooltip}" path="email" 
                          cssClass="input required email" />
    

    P.S. 最好使用${i18nTooltip},而不是i18nTooltip,以避免混淆。

    【讨论】:

    • 不应将title="i18nTooltip"写成title="${i18nTooltip}"
    • @Mushtaq:两者都应该工作。它是 Spring 特定的标记,title 属性在 Spring 的两种方式下都得到了很好的处理。
    • 感谢 Adeel 的澄清,我认为 spring 不支持数据属性,因此它对我不起作用。
    • @Mushtaq:很有可能。但是,我相信,您可以将变量包装在 ${} 中以使其工作。
    • @AdeelAnsari - 这就是我所做的:-)
    【解决方案3】:

    我认为这是最干净的方法:

     <form:input id="email_email" name="email_email" title='<spring:message code="tooltip.text"/>' path="email" cssClass="input required email" />
    

    寻找更改后的代码,我已经删除了单引号的标题属性的双引号及其工作奇迹。

    【讨论】:

    • 这个新答案应该更受欢迎,因为您可以在属性中使用标签。 :-)
    猜你喜欢
    • 2014-12-19
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2013-06-09
    • 2017-03-19
    • 2013-05-24
    • 2012-07-28
    相关资源
    最近更新 更多