Fermer

février 12, 2025

Un guide étape par étape / blogs / perficient

Un guide étape par étape / blogs / perficient


Dans cet article de blog, je vous guiderai tout au long du processus d’implémentation d’un validateur Spring Expression Language (SPEL) dans une application Spring Boot. Spel est un langage d’expression puissant qui prend en charge l’interrogation et la manipulation d’un graphique d’objet à l’exécution. À la fin de ce tutoriel, vous aurez un exemple de travail d’utilisation de Spel pour la validation dans votre application Spring Boot.

Structure du projet


Structure du projet

Étape 1: Configurez votre projet Spring Boot

Tout d’abord, configurons votre projet Spring Boot. Dirigez-vous vers Spring Initialiseur et créez un nouveau projet avec les dépendances suivantes:

  • Web de démarrage de démarrage de Spring
  • Thymeleaf (pour l’interface de forme)
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    		<version>3.4.2</version>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-thymeleaf</artifactId>
    		<version>3.4.2</version>
    	</dependency>
    </dependencies>
    

Étape 2: Créez la classe d’application principale

Ensuite, nous créerons la classe d’application principale pour bootstrap notre application Spring Boot.

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Étape 3: Créez une classe de modèle

Créez une classe Spelexpression pour maintenir l’entrée utilisateur.

package com.example.demo.model;

public class SpelExpression {
    private String expression;

    // Getters and Setters
    public String getExpression() {
        return expression;
    }

    public void setExpression(String expression) {
        this.expression = expression;
    }
}

Étape 4: Créez un contrôleur

Créez un contrôleur pour gérer l’entrée de l’utilisateur et valider l’expression de Spel.

package com.example.demo.controller;

import com.example.demo.model.SpelExpression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.SpelParseException;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;

@Controller
public class SpelController {

    private final ExpressionParser parser = new SpelExpressionParser();

    @GetMapping("https://blogs.perficient.com/spelForm")
    public String showForm(Model model) {
        model.addAttribute("spelExpression", new SpelExpression());
        return "spelForm";
    }

    @PostMapping("/validateSpel")
    public String validateSpel(@ModelAttribute SpelExpression spelExpression, Model model) {
        try {
            parser.parseExpression(spelExpression.getExpression());
            model.addAttribute("message", "The expression is valid.");
        } catch (SpelParseException e) {
            model.addAttribute("message", "Invalid expression: " + e.getMessage());
        }
        return "result";
    }
}

Étape 5: Créez des modèles de thymeleaf

Créez des modèles de thymeleaf pour le formulaire et la page de résultat.

Formulaire de jeu.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>SpEL Form</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f9;
            color: #333;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            text-align: center;
        }
        h1 {
            color: #4CAF50;
        }
        form {
            margin-top: 20px;
        }
        label {
            display: block;
            margin-bottom: 8px;
            font-weight: bold;
        }
        input[type="text"] {
            width: 100%;
            padding: 8px;
            margin-bottom: 20px;
            border: 1px solid #ccc;
            border-radius: 4px;
        }
        button {
            padding: 10px 20px;
            background-color: #4CAF50;
            color: #fff;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
        button:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>SpEL Expression Validator</h1>
        <form th:action="@{/validateSpel}" th:object="${spelExpression}" method="post">
            <div>
                <label>Expression:</label>
                <input type="text" th:field="*{expression}" />
            </div>
            <div>
                <button type="submit">Validate</button>
            </div>
        </form>
    </div>
</body>
</html>

résultat.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Validation Result</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f9;
            color: #333;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            text-align: center;
        }
        h1 {
            color: #4CAF50;
        }
        p {
            font-size: 18px;
        }
        a {
            display: inline-block;
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #4CAF50;
            color: #fff;
            text-decoration: none;
            border-radius: 4px;
        }
        a:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Validation Result</h1>
        <p th:text="${message}"></p>
        <a href="https://blogs.perficient.com/spelForm">Back to Form</a>
    </div>
</body>
</html>

Étape 6: Exécutez l’application

Maintenant, il est temps d’exécuter votre application Spring Boot. Pour tester le validateur de Spel, accédez à http: // localhost: 8080 / jeu de jeu dans votre navigateur.

Pour une expression valide

Validateur d'expression

Résultat du validateur d'expression

Pour une expression non valide

Validateur d'expression

Résultat du validateur d'expression
Conclusion

Suivant ce guide, vous avez réussi à implémenter un validateur Spel dans votre application Spring Boot. Cette fonctionnalité puissante améliore la flexibilité et la robustesse de votre application. Continuez à explorer Spel pour des solutions plus dynamiques et sophistiquées. Codage heureux!






Source link