Cela peut être le résultat d'une vue non spécifiée, en raison de la génération du nom de vue par défaut.

1. Erreur de programme

javax.servlet.ServletException: Circular view path [employee]: would dispatch back to the current handler URL [/employee] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

2. Contexte du projet

        (1) Le champ de la base de données est défini pour avoir un index unique

        (2) Écrit un gestionnaire d'exceptions pour renvoyer un type de données personnalisé

public class GlobalExceptionHandler {
    /**
     * SQLIntegrityConstraintViolationException的异常处理器
     * 新增数据库数据时,因某个字段是唯一的,当新增数据重复时,报SQLIntegrityConstraintViolationException
     * @return
     */
    @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    public R<String> exceptionHandler(){
        return R.error("新增失败");
    }
}

        (3) Un filtre est également écrit pour intercepter toutes les requêtes par défaut.

3. Analyse des causes d'erreur

        Lorsque je soumets intentionnellement des données en double sur la page, la couche inférieure de la base de données signalera une exception SQLIntegrityConstraintViolationException . Cependant, j'ai écrit un gestionnaire d'exceptions pour cette exception. Lorsque le programme signale cette exception, il entrera dans la logique du gestionnaire d'exceptions I. a écrit. .

        La page client envoie une requête au serveur. Une fois que mon gestionnaire d'exceptions a intercepté cette exception, il renvoie un type de données personnalisé au client, puis le filtre restitue la vue et la libère.

        Cependant, l' erreur « Cela peut être le résultat d'une vue non spécifiée, en raison de la génération du nom de vue par défaut » a été signalée, ce qui se traduit par « Cela peut être le résultat d'une vue non spécifiée, en raison de la génération du nom de vue par défaut. »

        La dernière raison en est que mon gestionnaire d'exceptions doit renvoyer des données au navigateur, mais n'ajoute pas l'annotation @ResponseBody . En fin de compte, cela peut provoquer une erreur lorsque le filtre restitue la vue et libère la demande.

4. Résolution des erreurs

        (1) Si le programme utilise le moteur de template Thymeleaf, cette erreur peut être due à l'absence du package jar. Dans ce cas, il vous suffit de l'introduire dans le fichier POM.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

        (2) Lorsque le serveur souhaite envoyer des données de réponse au navigateur, assurez-vous de vérifier si le code est marqué de l' annotation @ResponseBody . Sinon, ajoutez-le simplement.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_64709241/article/details/129238751
conseillé
Classement