1

国際化された Web サイトに 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 に答える