2

我有一个带有验证对象(返回真或假)的方法的远程 EJB。我希望能够将一个 ArrayList 对象传递给它,并让 EJB 用验证期间遇到的错误加载它,同时仍然接收真/假结果。

我怎样才能做到这一点?到目前为止,我可以将列表发送给它,它在服务器端受到影响,但原始列表在客户端没有被修改。

4

1 回答 1

1

这是因为当列表通过线路发送到 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
}
于 2008-11-10T13:22:22.707 回答