Maison  >  Article  >  Java  >  Utilisation de FreeMarker pour le traitement du moteur de modèles Web dans le développement d'API Java

Utilisation de FreeMarker pour le traitement du moteur de modèles Web dans le développement d'API Java

PHPz
PHPzoriginal
2023-06-18 08:39:541568parcourir

Avec le développement rapide d'Internet, le développement d'applications Web est devenu de plus en plus courant. Pour rendre les applications Web plus lisibles et maintenables, les développeurs utilisent souvent des moteurs de modèles Web pour le rendu des vues. Dans le développement Java, il existe de nombreux moteurs de modèles Web populaires, et FreeMarker en fait partie.

Cet article présentera le moteur de modèles Web FreeMarker et son utilisation dans le développement d'API Java, y compris ses fonctionnalités de base, sa configuration et son application en combat réel.

1. Qu'est-ce que FreeMarker

FreeMarker est un moteur de modèle Java open source qui utilise une méthode basée sur un modèle pour générer du texte statique ou des pages Web dynamiques. Sa caractéristique est la séparation des modèles et du code du programme, qui clarifie les frontières entre performances et logique, sépare le rendu des pages et la logique métier et améliore la lisibilité et la maintenabilité du code. FreeMarker prend en charge plusieurs types de modèles tels que les modèles de texte, les modèles XML, les modèles HTML, les bibliothèques de balises JSP, etc., et peut être intégré à une variété de frameworks Web, tels que Struts2, Spring MVC, etc.

FreeMarker possède les fonctionnalités suivantes :

  1. Séparation des préoccupations : Le fichier modèle définit uniquement l'effet d'affichage de la page et le comportement interactif des utilisateurs frontaux, sans code de logique métier intégré.
  2. Forte prise en charge des types : par rapport à JSP, FreeMarker possède de solides capacités de prise en charge des types, ce qui peut nous aider à vérifier les erreurs de type au moment de la compilation et à réduire les erreurs d'exécution.
  3. Divers formats de fichiers modèles : FreeMarker prend en charge le traitement de plusieurs formats de fichiers modèles, notamment, mais sans s'y limiter, HTML, XML et JSON.
  4. Compatibilité : FreeMarker peut être intégré à divers frameworks Web et est largement utilisé dans SpringMVC, Struts2 et d'autres frameworks.

2. Utilisation de l'API FreeMarker

FreeMarker fournit de nombreuses API pour l'utiliser pour générer des modèles. Notre appel initial consiste à configurer FreeMarker pour émettre des modèles. Ensuite, nous montrons comment configurer et utiliser l'API FreeMarker.

  1. Présentation du package de dépendances de FreeMarker

Tout d'abord, nous devons ajouter les dépendances de FreeMarker dans le pom du projet. Pour charger le modèle, reportez-vous à l'exemple de code suivant :

    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.31</version>
    </dependency>
    Parmi eux, VERSION_2_3_28 est le numéro de version de FreeMarker, et le La méthode setClassForTemplateLoading() définit le chemin permettant à FreeMarker de charger le modèle.
Définir le modèle de données

Ensuite, vous devez définir les données d'entrée du modèle. Dans FreeMarker, cet arrière-plan est une carte, et cette carte doit contenir toutes les données que nous souhaitons utiliser dans le modèle. Nous pouvons utiliser le type SimpleHash pour créer cette Map :

Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setClassForTemplateLoading(YourClass.class, "templates");
    Dans cet exemple, nous avons ajouté "title" comme clé et "FreeMarker Sample" comme valeur à l'entrée.
Charger et restituer le modèle

Enfin, nous devons charger le modèle et restituer les données d'entrée dans le modèle, reportez-vous à l'exemple de code suivant :

Map<String, Object> input = new HashMap<String, Object>();
input.put("title", "FreeMarker Example");
    Dans cet exemple, "example.ftl" est le modèle fichier, nous utilisons la méthode configuration.getTemplate() pour le charger, la méthode template.process() est utilisée pour restituer les données en entrée dans le modèle, et enfin la sortie via la sortie.
Syntaxe du modèle FreeMarker

La syntaxe du modèle FreeMarker définit les balises de modèle, les formats et les méthodes intégrés. Les marqueurs de modèle sont des directives dans les modèles, constituées du code du modèle FreeMarker dans une paire de balises ${} ou 72637aecae1027e7d023ac098a170986

    Voici quelques marqueurs FreeMarker :
${...} : les expressions FreeMarker peuvent contenir n'importe quelle expression Java légale.

210ed1318abde7834e36492ec8375eb8 : contient les balises du modèle d'origine.

f3e420799a6591d1a980bb00b8364694..9b0e62076707393bcdcc1fdedef2cb31 : indique un fragment de modèle agrégé.
  1. #...#list..#assign...#recover...#stop : Manipulez et contrôlez la balise d'origine de l'instance de modèle.
  2. b6171c79e43d4ace7268281c91ab5617...ef41338967419463344c621c1409f21c611f73697c333334ce54ec171d4b0f56 : Définissez un bloc modèle réutilisable.
  3. 3. Exemples d'application de FreeMarker
  4. Ci-dessous, nous montrerons comment utiliser FreeMarker pour écrire des modèles dans le développement d'API Java.
Écrire un fichier modèle

Tout d'abord, nous devons écrire un fichier modèle FreeMarker, par exemple, test.ftl :

Template template = configuration.getTemplate("example.ftl");
Writer out = new OutputStreamWriter(System.out);
template.process(input, out);
out.flush();
    Dans cet exemple, nous utilisons la balise ${...} pour référencer les données dans l'entrée, en utilisant la balise 364e9d80cdc5c997ad29773a08b6c2809fc13d131a1403f8a03377ed174a3a41 pour parcourir les utilisateurs et obtenir le nom et les attributs de courrier électronique de chaque utilisateur.
Définissez le modèle de données et chargez le modèle

Ensuite, nous devons définir le modèle de données, reportez-vous à l'exemple de code suivant :

<html>
<head>
<title>${title}</title>
</head>
<body>
<h1>${title}</h1>
<ul>
<#list users as user>
<li>${user.name} (${user.email})</li>
</#list>
</ul>
</body>
</html>
    Dans cet exemple, nous avons créé une classe JavaBean nommée User lors de la création de la carte. , nous ajoutons la userList comme clé et la référence List comme valeur à l'entrée.
  1. 3. Résumé

Cet article présente le moteur de modèles Web FreeMarker et son utilisation dans le développement d'API Java. FreeMarker facilite le développement d'applications Web tout en améliorant la lisibilité et la maintenabilité du code. En expliquant les fonctionnalités de base, la configuration et l'application de FreeMarker dans la pratique, nous espérons aider les lecteurs à mieux comprendre et appliquer FreeMarker.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn