1

我正在为国际化网站使用 Spring MVC 和 Velocity 模板。

在我的注册表单上,我通过#springFormInput 标签使用数据绑定。

如何在其中设置翻译的占位符?

它会是这样的:

#springFormInput("signupForm.emailAddress", "required email='true' maxlength='100' placeholder='TRANSLATED STRING'")

我以为我可以做这样的事情,但我不知道如何嵌套方法:

#springFormInput("signupForm.emailAddress", "required email='true' maxlength='100' placeholder='#springMessage("email_address")'")

(在这种情况下,“email_address”是翻译的 messages.properties 文件中的“键”。)

4

2 回答 2

1

我得到了这个工作。我必须在上面的行中设置一个变量(在 Velocity 中)。

查看带有 的行$placeholderPassword

#springBind("signupForm.password")
#if("$!status.errorCode" != "")
    #set($passwordError = true)
#end
<div class="input password#if($passwordError) invalid#end">
<div class="icon">
    <div class="image"></div>
</div>
#set($placeholderPassword = "#springMessage($TranslationConstants.PASSWORD)")
#springFormPasswordInput("signupForm.password", "placeholder='$placeholderPassword'")
<div class="status">
    <div class="image"></div>
    #if($passwordError)
        <div for="password" class="alert alert-error">
            $status.errorMessage
        </div>
    #end
</div>
</div>

$TranslationConstants 通过 FieldMethodizer ( https://stackoverflow.com/a/15126547/470749 ) 注入。

于 2013-08-22T23:07:27.490 回答
0

在不使用 FieldMethodizer 和设置速度变量的情况下,您可以执行以下操作:

#springFormInput("saleReportForm.reference" "class=form-control placeholder='#springMessage('saleReportForm.reference.placeholder')'")
于 2014-10-08T20:11:53.040 回答