Je configure un modèle Java NetBeans personnalisé. Lorsque j'utilise une fonction intégrée sans argument, par exemple ${name?lower_case}
, mon modèle fonctionne correctement. Cependant, lorsque j'utilise une fonction avec argument, je me retrouve avec une erreur (le fichier généré est vide).Modèle Netbeans avec Freemarker: intégré avec l'argument échoue
la fonction dite est removing_ending
. J'ai un Test.java et je veux générer un TestView.java qui repose sur Test.java:
<#assign type = ${name?remove_ending("View")}>
<#if package?? && package != "">
package ${package};
</#if>
import com.company.project.AbstractClass;
public class ${name} extends AbstractClass<${type}>{
}
Je me demande si je manquais une certaine importance, mais la fonction est dit être intégré donc j'ai supposé qu'il est disponible.
- J'ai essayé de
<#ftl>
ajouté au sommet du modèle sans succès - Avoir
type = "${name?remove_ending("View")}"
(guillemet) ou échapper à des guillemets autour du motView
n'a pas aidé ni
EDIT & Solution
- Sur Windows, les journaux Netbeans sont situés à% USER_HOME%/AppData/Roaming/NetBeans/{version netbeans} /var/log/messages.log
- Je n'ai pas cherché quelle version de FreeMarker Netbeans 8.2 utilise mais la commande
remove_ending
n'était tout simplement pas disponible. J'ai utilisé unname?substring(0, name?length - 4)
- fichiers de modèle sont localed en% USER_HOME% \ AppData \ Roaming \ NetBeans {version NetBeans} \ config \ Modèles
Merci pour la réponse, l'indice du journal et la syntaxe correcte étaient sauveur! J'ai modifié ma question pour mettre en évidence le chemin des journaux Netbeans. Dommage que Netbeans ne supporte pas 'remove_ending'. Je vais creuser ce point plus tard ... – Al1
Ils ont juste à mettre à jour FreeMarker, comme les versions 2.3.x sont rétrocompatibles. (Eh bien, en supposant qu'ils n'ont pas fourchu et modifié ce qu'ils ont ...) – ddekany