0

コードサンプル

「someproc」は、ブロードリーフ プラットフォームから org.broadleafcommerce.common.web.dialect.AbstractModelVariableModifierProcessor を拡張するカスタム プロセッサです。

<myproc:someproc /> // as a result is objectCreatedInProcessor 
<div th:classappend="${objectCreatedInProcessor==null?'null':'not_null'}></div>
<div th:classappend="${objectAddedToModelAndView==null?'null1':'not_null_1'}></div>

<div th:each="someVar : ${someVars}">
   <div th:classappend="${objectCreatedInProcessor==null?'null':'not_null'}></div>
   <div th:classappend="${objectAddedToModelAndView==null?'null1':'not_null_1'}></div>
</div>

<div th:classappend="${objectCreatedInProcessor==null?'null':'not_null'}></div>
<div th:classappend="${objectAddedToModelAndView==null?'null1':'not_null_1'}></div>

出力結果は次のようになります。

<div class='not_null'></div>
<div class='not_null_1'></div>
<div>
  <div class='null'></div>
  <div class='not_null_1'></div>
  <div class='null'></div>
  <div class='not_null_1'></div>
  <div class='null'></div>
  <div class='not_null_1'></div>   
</div>
<div class='not_null'></div>
<div class='not_null_1'></div>

$someVars リストに 3 つの項目があるとします。

問題は、なぜ $objectCreatedInProcessor beeing が th:each ループに NULL になっているのかということです。そして、変数 $objectAddedToModelAndView が NULL にならず、th:each ループにアクセスできるのはなぜですか?

私が間違っていることは何ですか?何かが恋しいですか?

EDIT1 : 閉じた条件式。これは問題の原因ではなく、単なるコード サンプルの悪さでした。

EDIT2 : 結果表示への閉じたクラス。

EDIT3 : $someVars はコントローラーからスプリング ModelAndView に追加された変数であることに言及するのを忘れました。

4

1 に答える 1

0

三項関数の条件を適切に閉じていないように見えます。null の後、? の前に } を追加します。各行で。

参照用のドキュメントからの三項の例を次に示します

'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))
于 2013-09-01T04:47:34.660 に答える