我有一个带有验证对象(返回真或假)的方法的远程 EJB。我希望能够将一个 ArrayList 对象传递给它,并让 EJB 用验证期间遇到的错误加载它,同时仍然接收真/假结果。
我怎样才能做到这一点?到目前为止,我可以将列表发送给它,它在服务器端受到影响,但原始列表在客户端没有被修改。
这是因为当列表通过线路发送到 bean 时,必须制作副本,因为列表从一个 JVM 移动到另一个。与普通方法不同,它不是同一个列表。我不知道它如何与本地 bean 一起工作,但远程 bean 没有其他方法。
我建议您让 bean 返回列表,如果该列表为空,则该对象有效。
例如:
public List<String> methodWithValidation(Object input) {
List<String> errors = new java.util.ArrayList<String>();
//various validation tests, each adding a message on fail
return errors;
}
调用方法会这样做:
List<String> errors = bean.methodWithValidation(object);
if(!errors.isEmpty()) {
//error logic
} else {
//continue
}