0

オブジェクトをフィールドとして持つフォームに問題があります。フォームのバリデーションでは文字列であるフィールドのみエラーが検出され、オブジェクトであるフィールドの制限は検出されません。フォームを継承するオブジェクトでも同じことが起こります。

フォームとオブジェクト

public class Vehiculo extends Nodo {

    @Required(message = "Este campo es requerido")
    private Integer capacidad;

    @Required(message = "Este campo es requerido")
    private boolean disponible;

    private String modelo;

    @OneToOne
    private Propietario propietario;

    ...
}




public class Propietario {

    @Id
    private int id;

    @Required(message = "Este campo es requerido")
    private String nombre;

    private Long telefono;

    private String direccion;

    ...

}

field.scala.html

@(elements: helper.FieldElements)
<div class="form-group @if(elements.hasErrors) {error}">
    <label class="control-label  col-lg-4">@elements.label</label>
    <div class="col-lg-8">
        @elements.input
        @if(elements.hasErrors) { <span class="help-block col-lg-6">@elements.errors.mkString(", ") </span> }
    </div>
</div>

見る

@form(action = routes.Administrador.ingresarVehiculo(),'class -> "form-horizontal", 'id -> "inline-validate"){
                    <fieldset>                        
                        @inputText(field=vehiculoForm("propietario.nombre"), '_label -> "Nombre Completo (*)",'class -> "form-control col-lg-6" )
                        @inputText(field=vehiculoForm("propietario.direccion"), '_label -> "Dirección",'class -> "form-control col-lg-6" )
                        @inputText(field=vehiculoForm("propietario.telefono"), '_label -> "Telefono",'class -> "form-control col-lg-6" )                       
                        @inputText(field=vehiculoForm("modelo"), '_label -> "Modelo",'class -> "form-control col-lg-6" )
                        @inputText(field=vehiculoForm("capacidad"), '_label -> "Capacidad (*)",'class -> "form-control col-lg-6" )
                        @select(field = vehiculoForm("disponible"),options = Seq("0"->"No", "1"->"Si"),'_label -> "Disponible")                                            
                        @inputText(field=vehiculoForm("coordenadas.latitud"), '_label -> "Latitud (*)",'class -> "form-control col-lg-6" )
                        @inputText(field=vehiculoForm("coordenadas.longitud"), '_label -> "Longitud (*)",'class -> "form-control col-lg-6" )
                        @inputText(field=vehiculoForm("direccionReferencial"), '_label -> "Dirección Referencial",'class -> "form-control col-lg-6")
                        <div class="form-actions">
                            <button type="submit" class="btn btn-success">Registrar</button>
                        </div>
                    </fieldset>
                }

@Required をフォームに入れようとしましたが、結果が得られません。私は何ができますか?ありがとう。

4

1 に答える 1

1

オブジェクトフィールドに javax.validation.Valid アノテーションを付けてみてください。お気に入り:

public class Vehiculo extends Nodo {

    @Required(message = "Este campo es requerido")
    private Integer capacidad;

    @Required(message = "Este campo es requerido")
    private boolean disponible;

    private String modelo;

    @Valid
    @OneToOne
    private Propietario propietario;

    ...
}
于 2013-11-04T07:05:15.813 に答える