gpt4 book ai didi

Play2 中 inputRadioGroup 的 Java 示例

转载 作者:行者123 更新时间:2023-12-02 07:14:56 27 4
gpt4 key购买 nike

我无法找到如何为我的表单实现单选按钮。我需要在该组中有 5 个单选按钮,代表从 1 到 5 的等级。

表格:

public static class MobileWriteReview {

@Constraints.MinLength(1)
@Constraints.MaxLength(32)
@Constraints.Required
public String firstName;

@Constraints.MinLength(1)
@Constraints.MaxLength(32)
@Constraints.Required
public String lastName;

@Constraints.MinLength(5)
@Constraints.Required
public String password;

@Constraints.MinLength(5)
@Constraints.Required
public String repeatPassword;

@Constraints.Required
public int grade;

@Constraints.MinLength(30)
@Constraints.Required
public String text;

/**
* Required by play.
*/
public MobileWriteReview() {
}

public MobileWriteReview(int grade) {
this.grade = grade;
}
}

Controller 方法:

private static final Form<MobileWriteReview> MOBILE_WRITE_REVIEW_FORM = form(MobileWriteReview.class);

public static Result review(){
MobileWriteReview mobileWriteReview = new MobileWriteReview(3);
MOBILE_WRITE_REVIEW_FORM.fill(mobileWriteReview);
return ok(mobileInviteToReview.render(MOBILE_WRITE_REVIEW_FORM));
}

public static Result doReview(){
final Form<MobileWriteReview> filledForm = MOBILE_WRITE_REVIEW_FORM.bindFromRequest();
if (filledForm.hasErrors()) {
// User did not fill everything properly
return badRequest(mobileInviteToReview.render(filledForm));
} else {
// Everything was filled
return ok();
}
}

view.scala.html

@(inviteForm: Form[_])
@styles = {

}
@scripts = {

}

@import helper._

@helper.form(routes.MobileInviteToReview.doReview) {

@if(inviteForm.hasGlobalErrors) {
<p class="error">
<span class="label label-important">@inviteForm.globalError.message</span>
</p>
}

@inputRadioGroup(
// appropriate code here
)

}

所以我的问题是如何在 Controller 中设置表单,然后在 View 中使用它?

最佳答案

首先,您的代码在 Controller 中渲染表单时出现错误。

解决方案可能如下所示:

Controller :

private static final Form<MobileWriteReview> MOBILE_WRITE_REVIEW_FORM = Form.form(MobileWriteReview.class); // this field declared as final

public static Result review(){
MobileWriteReview mobileWriteReview = new MobileWriteReview(4);
Logger.info("Mobile Write Review grade = " + mobileWriteReview.grade);

// this is proper way to fill the form using existing value
return ok(views.html.mobileInviteToReview.render(MOBILE_WRITE_REVIEW_FORM.fill(mobileWriteReview)));
}

public static Result doReview(){
final Form<MobileWriteReview> filledForm = MOBILE_WRITE_REVIEW_FORM.bindFromRequest();
MobileWriteReview mobileWriteReview = filledForm.get();
Logger.info("Grade submitted = " + mobileWriteReview.grade);

if (filledForm.hasErrors()) {
// User did not fill everything properly
return badRequest(views.html.mobileInviteToReview.render(filledForm));
} else {
// Everything was filled
return ok("Grade submitted = " + mobileWriteReview.grade);
}
}

观看次数:

@(inviteForm: Form[models.MobileWriteReview])
@import views.html.helper._

@main(title = "Input Radio Group Sample") {
@form(action = routes.Application.doReview()) {
@****** This helper can accomodate selected value of radio button if present *****@
@inputRadioGroup(
inviteForm("grade"),
options = options("1" -> "1", "2" -> "2", "3" -> "3", "4" -> "4", "5" -> "5")
)

<input type="submit" value="Post">
}
}

请参阅 inputRadioGroup 帮助程序的文档 here .

关于Play2 中 inputRadioGroup 的 Java 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com