I am making a web application in spring boot and I want to handle the unique key constraint exception and return the error message back to the input page. I have searched a lot for this method but didn't find it.
Controller class:-
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";
}
}
}
Please suggest me what to?