2013-08-30 2 views
0
chaque

Exemple de codeobjet thymeleaf créé à partir du processeur de feuillu extednd est fait nulle lors de l'utilisation th: chaque et est accessible uniquement ouside th:

« someproc » est un processeur personnalisé qui étend org.broadleafcommerce.common.web.dialect .AbstractModelVariableModifierProcessor de la plate-forme broadleaf.

<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> 

En conséquence de sortie sera:

<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> 

supposant que nous avons trois éléments dans la liste someVars $. La question est, pourquoi $ objectCreatedInProcessor est-il fait NULL dans chaque boucle.? Et pourquoi la variable $ objectAddedToModelAndView n'est pas faite NULL, et est-elle accessible dans th: each loop?

Qu'est-ce que je fais mal? Est-ce que quelque chose me manque?

EDIT1: expression conditionnelle fermée. Ce n'était pas la raison du problème, c'était seulement un mauvais échantillon de code.

EDIT2: Classes fermées dans l'affichage des résultats.

EDIT3: Pour ne pas mentionner que $ someVars est une variable ajoutée à partir d'un contrôleur au modèle ModelAndView.

Répondre

0

Il semble que vous ne fermiez pas correctement les conditions sur vos fonctions ternaires. Ajouter un} après le null et avant le? sur chaque ligne.

Voici un exemple ternaire de la docs pour référence

'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown')) 
+0

Merci pour la réponse, mais l'exemple a été écrit sans être testé, mais le problème est pas là. Le problème est que nous avons deux types de variables, une qui est créée dans le contrôleur de ressort et ajoutée à l'objet ModelAndView (objectAddedToModelAndView) (qui n'est pas null dans th: each) et une qui est ajoutée dans Processor avec la méthode org.broadleafcommerce .common.web.dialect.AbstractModelVariableModifierProcessor # addToModel (objectCreatedInProcessor) qui est rendu nul dans th: chaque boucle. –

Questions connexes