Java 验证bean的最佳方法
假设我有一个bean,它有10个属性。 我还有一个关于对象的错误,它有三个属性,即。errorFlag、errCd和errMsg 我想验证bean属性的顺序性,我想在第一次出现错误时中断并填充错误对象。 我该怎么做,我想有最低限度的如果。else if语句 菜豆Java 验证bean的最佳方法,java,validation,javabeans,bean-validation,Java,Validation,Javabeans,Bean Validation,假设我有一个bean,它有10个属性。 我还有一个关于对象的错误,它有三个属性,即。errorFlag、errCd和errMsg 我想验证bean属性的顺序性,我想在第一次出现错误时中断并填充错误对象。 我该怎么做,我想有最低限度的如果。else if语句 菜豆 public class ErrObj{ private String errorMessage; private String errorCode; private boolean errorFlag;
public class ErrObj{
private String errorMessage;
private String errorCode;
private boolean errorFlag;
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public boolean isErrorFlag() {
return errorFlag;
}
public void setErrorFlag(boolean errorFlag) {
this.errorFlag = errorFlag;
}
}
下面是我验证Bean的类
假设,我使用一些自定义util类的静态方法,这些方法根据字段是否有效返回布尔值
public class ValidateMyBean{
ErrObj errObj = new ErrObj();
if(!CustomUtils.isValid(myBean.getProp1))
{
// set some error conditions
errObj.errorCode("123");
errobj.setErrorMessage("validation 1 Failed");
}
else if(!CustomUtils.isValid(myBean.getProp2))
{
}
..........so on
}
因此,如果我的bean有10个属性,并且我必须根据3个验证器方法验证每个属性,那么我不想编写多个“if-elseif”语句,也不想在每个if语句的末尾编写带有return语句的mutliple“if”语句,以防出现任何错误。
是否有任何清洁剂的方法或有一些框架,可以帮助我达到预期的结果?
PS:这个Java应用程序使用Spring核心框架,是一个webservice应用程序,而不是MVC应用程序。有许多验证UTIL。您可以检查以下示例: 还有一个关于它的jsr规范:jsr-303
享受使用JSP访问Java bean的乐趣:
<html>
<head>
<title>useBean Example</title>
</head>
<body>
<jsp:useBean id="date" class="java.util.Date" />
<p>The date/time is <%= date %>
</body>
</html>
使用JSP编写JavaBean程序变得更加容易
useBean操作声明了一个JavaBean以在JSP中使用。一旦声明,bean就成为一个脚本变量,脚本元素和JSP中使用的其他自定义标记都可以访问它。useBean标记的完整语法如下所示:
<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>
在此,scope属性的值可以是页面、请求、会话或应用程序,具体取决于您的需求。id属性的值可以是任何值,只要它是同一JSP中其他useBean声明中唯一的名称
下面的示例显示了它的简单用法:
<html>
<head>
<title>useBean Example</title>
</head>
<body>
<jsp:useBean id="date" class="java.util.Date" />
<p>The date/time is <%= date %>
</body>
</html>
useBean示例
日期/时间是
这将产生以下结果:
日期/时间是2010年9月30日星期四11:18:11 GST它不是MVC应用程序。那么第一个链接适用吗?JSR是一个验证标准。不管是否使用MVC,jsr-303的实现都是进行验证的标准方法。例如,hibernate在另一个边界使用符合jsr-303的(大约)验证:。因此,是的,第一个链接适用。它只是预定边界上的通用bean验证机制,在示例中是控制器绑定,但它可以是任意的。你也可以用自定义代码来编造类似的东西,如果你这么想的话。我真的推荐bean验证规范,但想补充一点,它们已经升级到1.1版了:谢谢,我是JSR-303的新手,不过它看起来很有希望,我希望学习,谢谢你的指点和指导。