méthode de rendu des séries


Les méthodes de série de rendu rendront différents types de vues et les renverront au client. Les types de vues actuellement pris en charge par JFinal sont :
FreeMarker, JSP, Velocity, JSON, File, Text, Html, etc. En plus des types de vues pris en charge par JFinal, vous pouvez également étendre les types de vues à l'infini en héritant de la classe abstraite Render.


Habituellement, la méthode Controller.render(String) est utilisée pour restituer la vue. Le type de vue lors de l'utilisation de Controller.render(String) est déterminé par

JFinalConfig.configConstant(Constantsconstants) constants in la configuration. Déterminez avec setViewType(ViewType). Les ViewTypes pris en charge par cette méthode de paramétrage sont : FreeMarker, JSP et Velocity. Lorsqu'aucune configuration n'est effectuée, la configuration par défaut est FreeMarker.


De plus, vous pouvez également définir la vue utilisée par Controller.render(String) via

constants.setMainRenderFactory(IMainRenderFactory est spécialement utilisé pour étendre la méthode Controller.render(String) en plus de FreeMarker). , JSP et Velocity vue extérieure.

Supposons qu'il existe la configuration de mappage de contrôleur suivante dans JFinalConfig.configRoute (Routes routes) : routes.add("/user", UserController.class, "/path"), exemple d'utilisation de render (String view) :


QQ截图20170206102243.png

Autres exemples d'utilisation de la méthode de rendu :


QQ截图20170206102250.png

Remarque :

QQ截图20170206102257.png2 : À l'exception de la méthode renderError, le programme ne reviendra pas immédiatement après avoir appelé la série de méthodes render. Si vous devez revenir immédiatement, vous devez utiliser l'instruction return. Lorsque la méthode render est appelée plusieurs fois dans une action, seule la dernière est valide. 1 : IE ne prend pas en charge contentType comme application/json. Lorsque json est renvoyé après le téléchargement du fichier par ajax, IE vous invite à télécharger le fichier. La solution consiste à utiliser : render(new JsonRender().forIE()) ou render. (nouveau JsonRender(params ).forIE()). Cette situation ne se produit que lors du téléchargement de fichiers ajax du navigateur IE, et les autres requêtes ajax ordinaires sont ignorées.