Dans le cadre d'un projet sur lequel je travaille, nous migrons de Velocity vers JSP. Je dois transformer l'ensemble des modèles Velocity existants en JSP. Nous pourrions passer des heures à discuter des raisons pour lesquelles cela a été décidé (en partie de ma faute), lequel est le meilleur et le meilleur moyen de dissuader la direction de s'engager dans cette voie, mais ce serait une perte de temps. Donc, ce que je cherche est un ensemble de modèles, de bonnes pratiques, ce que vous avez, pour m'aider. Il y a beaucoup de macros Velocity dans le fichier de la bibliothèque globale qui sont utilisées à travers une variété de modèles. Je pense à convertir chaque macro en scriptlet JSP et à traduire la macro en Java. Ensuite, je voudrais inclure ce fichier avec tous les scriptlets dans chaque JSP soit via la directive include ou jsp: include. Je pensais aussi à convertir chaque appel en macro en scriptlet. Ces macros ont des paramètres définis dans la classe Spring ModelAndView.Migration de Velocity vers les pages JSP
Des tests préliminaires semblent indiquer que cette approche ne fonctionnera pas. Il semble que je reçois des erreurs de compilation JSP. Mais, je pourrais manquer une erreur de ma part. J'utilise cette application Web sur OC4J version 10.1.3.4.0.
Voici un exemple simple de ce que je dois faire. Ceci est dans le fichier VM_global_library.vm:
#macro(showObjectErrors $objectName)
#if ($request.errorSystem.hasErrors($objectName))
<table>
#foreach ($error in $request.errorSystem.getErrors($objectName))
<tr>
<td class="acError">$error</td>
</tr>
#end
</table>
#end
#end
Et il est appelé dans d'autres fichiers comme ceci:
#showObjectErrors("logonForm")
Notez que l'objet « demande » est pas un HttpServletRequest, mais une classe d'application. Il y a des exemples beaucoup plus complexes qui sont trop nombreux à montrer.
Il semble que lorsque vous dites «en mouvement», vous voulez dire «migrer» et vous cherchez la meilleure approche (la plus facile) de la migration. Ce n'est pas le cas. "Moving" de Velocity à JSP est appelé "réécriture". Par conséquent, la meilleure approche serait d'écrire votre nouveau code JSP, pas de scriptlets. – ChssPly76
J'ai un ensemble de fichiers de modèles Velocity. Je dois les transformer en JSP. –
Je comprends cela. Je dis juste que vous finirez par les réécrire de toutes pièces. Les macros Velocity n'ont aucune correspondance directe dans le monde JSP; jsp-include est une substitution plutôt pauvre. Tuiles Apache (http: //tiles.apache.org) fournissent une approche un peu meilleure de la composition de la page via includes; mais cela ne vous permettra toujours pas de faire une traduction bi-univoque des macros Velocity. – ChssPly76