【问题标题】:Spring/Webflow problem with validation验证的 Spring/Webflow 问题
【发布时间】:2011-09-28 03:00:03
【问题描述】:

验证问题

我会在方法“注册”时运行验证

在网络流中: ...

<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 类的验证器中得到错误,但对于 Class Address 却没有

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

【问题讨论】:

    标签: java spring validation spring-webflow


    【解决方案1】:

    关于 WebFlow 仅验证一个模型对象的另一个答案是正确的,但是您不需要创建另一个对象。您可以进行嵌套验证。只需在您的用户验证器中调用地址验证器。进入验证器例程后,您可以四处走动,做几乎任何您需要的事情。

    【讨论】:

      【解决方案2】:

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

      以下只会验证user

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

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

      【讨论】:

        猜你喜欢
        • 2015-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        相关资源
        最近更新 更多