web-dev-qa-db-ja.com

freemarkerテンプレートで文字列を数値に変換する方法

Freemarkerで文字列を数値に変換したい。数値の値に基づいて条件チェックを行いたいのですが。 ?numberが機能していないようです。

助言がありますか?

18
Mady

?numberは問題なく機能します。隠された番号を他の番号と比較することができませんでした。これは私にとってはうまくいきませんでした

<#assign num = numString?number>

<#if num > 100>
</#if>

私が括弧の中に入れたとき(num> 100)、それはうまくいきました。

<#if (num > 100)>
</#if>

比較が機能していなかったので、変換は行われていないと想定していました。私の悪い。

29
Mady

次のように使用できると思います:string?eval

1
Mathew P. Jones

コードでは閉じ括弧を使用しているので、freemarkerは評価しています

<#if num >

代わりに使用する必要があります

<#if num gt 100>

これについては、このドキュメントの最後にあるifステートメントについて説明します https://freemarker.Apache.org/docs/ref_directive_if.html

これが一部で機能し、他では機能しない理由は、括弧のせいです。括弧もドキュメントの下部で説明されています

1
Tay Moore

以下のコードを使用してください

<#if num?string > 100?string>
</#if>

それは私のために働いた。