Spring/Webflow验证问题

use*_*654 2 java validation spring spring-webflow

验证问题

当方法"注册"时我会运行验证

在webflow中:...

<transition on="registered" to="registeredAction" bind="true" validate="true" />
Run Code Online (Sandbox Code Playgroud)

...

我的模型看起来像这样:

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 ());
}
}
Run Code Online (Sandbox Code Playgroud)

在Address类中

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 ());
}
}
Run Code Online (Sandbox Code Playgroud)

执行操作并在User类的验证器中获取错误,但不是类地址

谁知道为什么会这样?

Wil*_*leu 5

Spring只会将bean集上的验证调用为视图状态的模型.

以下内容仅验证user:

<view-state id="something" view="something.jsp" model="user">
    <transition on="registered" to="registeredAction" bind="true" validate="true" />
</view-state>
Run Code Online (Sandbox Code Playgroud)

您将需要创建一个封装用户对象和地址,并使用它作为模型(和调用的验证方法User,并Address在它的验证方法).