小编Mik*_*ike的帖子

@Repeat Form Helper with complex object - Play Framework

根据我模型中的数据,我无法设置具有选定值的重复字段.

目前我在我的用户模型中:

@Required
public String username;

@ManyToMany
public List<Stay> places;
Run Code Online (Sandbox Code Playgroud)

而我的Stay模型:

@Required
@ManyToOne
public Place place;

@Required
@Formats.DateTime(pattern="yyyy-MM-dd")
public Date startDate;

@Required
@Formats.DateTime(pattern="yyyy-MM-dd")
public Date endDate;
Run Code Online (Sandbox Code Playgroud)

我的Scala视图形式:

    @(formUser: Form[User])
...
    @repeat(formUser("places"), min = 1) { stayField =>
      <div id="groupLocationField">
        // Don't manage to reach User->Places->Place
        @select(formUser("stayField.places"), options(Place.optionsTitle))
        @inputDate(formUser("stayField.startDate"))
        @inputDate(formUser("stayField.endDate"))
      </div>
    }
Run Code Online (Sandbox Code Playgroud)

stayField是一个包含的Form.Field类型 Field(null,places[1],ArrayBuffer(),None,ArrayBuffer(),Some(Paris Mon Oct 29 00:00:00 CET 2018 Wed Jun 11 00:00:00 CEST 2014 null))

但似乎已将我的地方和日期转换为字符串.@stayField包含我的Stay模型toString方法的值.

@stayField.value = Paris Mon Oct 29 00:00:00 CET 2018 Wed Jun 11 00:00:00 …
Run Code Online (Sandbox Code Playgroud)

java forms scala playframework-2.0 bootstrap-form-helper

5
推荐指数
1
解决办法
3064
查看次数

使用Play框架在View中格式化ValidationError

我无法从我的视图中访问ValidationError消息.我设法在我的视图中获得的唯一输出是:

[ValidationError(username,Too short, sorry ;),[6])]
[ValidationError(password,Confirmation password doesn't match,[])]
Run Code Online (Sandbox Code Playgroud)

我只想输出错误消息:"太短,抱歉;)"和"确认密码不匹配".

我找到的解决方法是从表单中调用特定字段,然后访问错误消息:

@form("password").error.map(_.message).getOrElse("")
Run Code Online (Sandbox Code Playgroud)

谢谢,

我的观点register.scala.html:

@if(form.hasErrors) {
<div class="form-group">
    <div class="alert alert-danger col-lg-6 text-center">
       @for((key, vamlue) <- form.errors){
         @value<br />
       }
   </div>
</div>
}
Run Code Online (Sandbox Code Playgroud)

我的控制器:

public static Result registerSubmit(){
        Form<User> registerForm = form(User.class).bindFromRequest();
        String passwordConfirmation = registerForm.field("passwordConfirmation").value();

        if(!registerForm.field("password").valueOr("").equals(passwordConfirmation)){
            ValidationError e = new ValidationError("password", "Confirmation password doesn't match");
            registerForm.reject(e);
        }

        if (registerForm.hasErrors()){
            // Handle Error
            return badRequest(register.render(registerForm));
        } else {
            // Check if all data are fine    
            // TODO : Redirect to …
Run Code Online (Sandbox Code Playgroud)

java scala validationerror playframework playframework-2.0

2
推荐指数
1
解决办法
1462
查看次数