Java Spring引导应用程序如何在JsonFormat中发送多个响应
在按钮响应中,如何重用代码我在每次响应消息时都遇到一些问题,在if条件下返回响应,如果有任何解决方案,请向我解释 包com.kk.springbootsrestapp.controllerJava Spring引导应用程序如何在JsonFormat中发送多个响应,java,Java,在按钮响应中,如何重用代码我在每次响应消息时都遇到一些问题,在if条件下返回响应,如果有任何解决方案,请向我解释 包com.kk.springbootsrestapp.controller import java.util.regex.Pattern; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.regex.Pattern;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.kk.springbootrestapp.controller.bean.EmployeeBean;
import com.kk.springbootrestapp.controller.response.EmployeeResponse;
@RestController
public class EmployeeController {
@RequestMapping(value = "regmep", method = RequestMethod.POST)
public @ResponseBody EmployeeResponse registerEmp(@RequestBody EmployeeBean emp) {
EmployeeResponse response = new EmployeeResponse();
try {
if (!Pattern.matches("^\\S{3,}$", emp.getEname())) {
//`enter code here`
response.setResponseMessage("Invalid name");
response.setResposeCode("400");
return response;
} else if (!Pattern.matches("^\\S{4,}$", emp.getEjob())) {
response.setResponseMessage("Invalid job");
response.setResposeCode("400");
return response;
} else if (!Pattern.matches("^[0-9]{2}", emp.getEage().toString())) {
//`enter code here`
response.setResponseMessage("Invalid age");
response.setResposeCode("400");
return response;
} else {
response.setResponseMessage("success");
response.setResposeCode("200");
}
} catch (NullPointerException e) {
response.setResponseMessage("bad request");
response.setResposeCode("400");
return response;
}
return response;
}
}
解决方案一 快速修复。 您必须在代码中包含以下消息:
EmployeeResponse response = new EmployeeResponse();
String errorMessage = "";
if (emp == null) {
responseMessage = "bad request"
} else {
if (!Pattern.matches("^\\S{3,}$", emp.getEname())) {
responseMessage += "Invalid name";
if (!Pattern.matches("^\\S{4,}$", emp.getEjob())) {
responseMessage += "Invalid job";
if (!Pattern.matches("^[0-9]{2}", emp.getEage().toString())) {
responseMessage += "Invalid age";
}
}
if (StringUtils.isBlank(responseMessage)) {
response.setResponseMessage("success");
response.setResposeCode("200");
} else {
response.setResponseMessage(responseMessage);
response.setResposeCode("400");
}
return respone;
但这仍然是丑陋的代码强>
解决方案二。
你可以使用,甚至可以写你的。
它使用起来很简单,但并不是所有可以通过注释完成的事情,在某些情况下,您必须手动验证数据。因此,您将在两个位置(注释和验证器类)使用验证逻辑,这是阅读旧代码时容易混淆的地方
解决方案三。
所有手写验证程序。
阅读有关全局异常处理的内容和
首先,将此逻辑移动到单独的类,例如,
EmployeeBeanValidator
。而不是使用响应直接收集有关验证的数据,并在结束时抛出异常,例如ValidationException
,其中包含错误列表。然后,您必须在带注释的类中定义异常处理程序,然后才能修改HTTP。感谢您提供的解决方案