問題
テンプレートで2つの数値を加算する場合、数値は加算されないが、結果は連結された形になる。
環境
- Liferay DXP 7.1
解像度
この背景には、Freemarkerテンプレート言語で ${....}で始まるコードを書いている場合、デフォルトで の文字列とみなされることがあります。 そこで、テンプレートに数字フィールドを追加するためには、まず文字列を数字に変換する必要があります。 以下は、番号の追加が可能になった後の変更点です。
-
テンプレート内の数字を抽出し、「+」で数字を追加。 テンプレートはこのような感じでした:
${Numbergr95.getData()}+${Numberbthb.getData()}
結果: 数値は加算されるのではなく、連結されました。 -
文字列を数値に変換するための関連する変更を行った後。 テンプレートは以下のような感じでした:
${Numbergr95.getData()?number+Numberbthb.getData()?number}
結果が出ました: 数字が追加されました。
追加情報
- 報告された動作をお客様の下位の環境でテストしていただき、お客様の判断で本番環境に移行してください。
- この リンク は、フリーマーカーテンプレートの文字列を数値に変換する方法を理解するのに役立つかもしれません。
- この解決方法はカスタマイズが必要なため、チームの判断で実施する必要があります。 Liferay サポートは、カスタマイズの設計や実装を支援することはできません。