当前位置: 首页 > 知识库问答 >
问题:

如何在Spring boot中将错误消息返回到输入页?

太叔岳
2023-03-14

我正在制作一个Spring启动的Web应用程序,我想处理唯一的键约束异常并将错误消息返回到输入页面。我已经搜索了很多这种方法,但没有找到。

控制器类:-

package com.ems.master.controller;

import java.sql.SQLIntegrityConstraintViolationException;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.ems.master.dao.EnterpriseDao;
import com.ems.master.model.Enterprise;

@Controller
public class MasterController {

    @Autowired
    EnterpriseDao edao;

    @GetMapping("/")
    public String index() {
        return "Pages/index.html";
    }

    @RequestMapping("/Register")
    public String register() {
        return "Pages/AddEnterprise.html";
    }

    @RequestMapping("/AddEnterprise")
    @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    public String addEnterprise(ModelMap model, @RequestParam("entName") String entName,
            @RequestParam("entDesc") String entDesc, @RequestParam("owner") String owner,
            @RequestParam("contact") String contact, @RequestParam("code") String code,
            @RequestParam("contactNo") String contactNo, @RequestParam("contactEmail") String contactEmail) {
        try {
            Enterprise ent = new Enterprise();
            ent.setEnterpriseName(entName);
            ent.setEnterpriseDesc(entDesc);
            ent.setOwner(owner);
            ent.setContactPerson(contact);
            ent.setContactNo(code + "-" + contactNo);
            ent.setContactEmail(contactEmail);
            ent.setStatus("Active");
            edao.insert(ent);
            model.put("status", ent.getEnterpriseName() + " registered successfully.");
            return "Pages/Homepage.html";
        } catch (SQLIntegrityConstraintViolationException ex) {
            model.put("error", ex.getMessage());
            return "Pages/AddEnterprise.html";
        }
    }

}

请建议我做什么?

共有1个答案

姚鹤龄
2023-03-14

我认为您需要ReDirectAttie tes,请查看此链接:ReDirectAttie tes: addAtcm()vs addFlashAtcm()

@RequestMapping("/AddEnterprise")
    @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    public String addEnterprise(ModelMap model, @RequestParam("entName") String entName,
            @RequestParam("entDesc") String entDesc, @RequestParam("owner") String owner,
            @RequestParam("contact") String contact, @RequestParam("code") String code,
            @RequestParam("contactNo") String contactNo, @RequestParam("contactEmail") String contactEmail, RedirectAttributes redirectAttrs) {
        try {
            Enterprise ent = new Enterprise();
            ent.setEnterpriseName(entName);
            ent.setEnterpriseDesc(entDesc);
            ent.setOwner(owner);
            ent.setContactPerson(contact);
            ent.setContactNo(code + "-" + contactNo);
            ent.setContactEmail(contactEmail);
            ent.setStatus("Active");
            edao.insert(ent);
            model.put("status", ent.getEnterpriseName() + " registered successfully.");
            return "Pages/Homepage.html";
        } catch (SQLIntegrityConstraintViolationException ex) {

            redirectAttrs.addAttribute("error", ex.getMessage());

            return "redirect:/Register";
        }
    }
 类似资料:
  • 我正在用这样的方法 我想在异常发生时返回一些文本消息,但是现在我只返回状态和空对象。有可能做吗?

  • 问题内容: 当我将鼠标悬停在任何单词上时,总是显示一个黑框。如果PHP代码返回文本,它将显示在黑框中(应该显示)。但是,如果文本未返回,我希望它返回一个错误函数,以便以后可以更改黑盒的CSS,以使其宽度为而不是。 您可能已经发现,我遗漏了一些不重要的代码。希望有人能理解和帮助我!谢谢! 问题答案: 这正是您可以执行的操作: 在您的PHP文件中: 在您的jQuery AJAX端:

  • 问题内容: 我想在路径中找到匹配的字符串,并使用np.select创建一个新列,其中的标签取决于我找到的匹配项。 这是我写的 但是,当我运行此代码时,出现以下错误消息: ValueError:condlist中的无效条目0:应为boolean ndarray 这是我的数据样本 问题答案: 该方法在对象列上操作。此类列中可能包含非字符串值,结果是这些行而不是返回。然后抱怨,因为这不是布尔值。 幸运的

  • 我有一个有三个标签的手风琴面板。在第一个选项卡中,是一个带有所需InputExt的表单。现在我遇到了一个问题,错误消息显示在所有三个选项卡中,而不是仅显示在一个选项卡中。有什么建议吗?如何仅为一个选项卡设置所需输入的错误消息? 谢谢帮忙!

  • 我正在努力使用Alamofire及其浏览器获取返回的json错误消息<代码>成功/。故障方法。 在使用这个之前,我可以使用