验证问题

当方法“注册”时,我将运行验证

在网络流中:
...

<transition on="registered" to="registeredAction" bind="true" validate="true" />


...

我的模型如下所示:

class User {
private String name;
private String surname;
...
private List <address> addresses;
...
public void validateRegistered (ValidationContext context) {
Context.getMessageContext MessageContext messages = ();

if (name == null) {
messages.addMessage (new MessageBuilder (.) error (). source ("name".) code (MessageCodes.Error.REQUIRED.) build ());
}
}


在地址类中

Class Address {

private String street;
private String city;

public void validateRegistered (ValidationContext context) {
Context.getMessageContext MessageContext messages = ();

if (street == null) {
messages.addMessage (new MessageBuilder (.) error (). source ("street".) code (MessageCodes.Error.REQUIRED.) build ());
}
}


对User类执行操作并在验证器中获取错误,但对于类Address则不然

有人知道为什么会这样吗?

最佳答案

Spring将仅在bean集合上将验证作为视图状态的模型。

以下将仅验证user

<view-state id="something" view="something.jsp" model="user">
    <transition on="registered" to="registeredAction" bind="true" validate="true" />
</view-state>


您将需要创建一个封装用户和地址的对象,并将其用作模型(并在其验证方法中调用UserAddress的验证方法)。

10-02 06:54
查看更多