Play2中inputRadioGroup的Java示例

Play2中inputRadioGroup的Java示例,java,forms,playframework,playframework-2.1,Java,Forms,Playframework,Playframework 2.1,我很难找到如何实现表单的单选按钮。我需要在这组中有5个RadionButton代表1到5级 表格: 控制器方法: private static final Form<MobileWriteReview> MOBILE_WRITE_REVIEW_FORM = form(MobileWriteReview.class); public static Result review(){ MobileWriteReview mobileWriteReview = new Mo

我很难找到如何实现表单的单选按钮。我需要在这组中有5个RadionButton代表1到5级

表格:

控制器方法:

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();
        }
}
private static final Form MOBILE\u WRITE\u REVIEW\u Form=Form(MobileWriteReview.class);
公共静态结果审查(){
MobileWriteReview MobileWriteReview=新MobileWriteReview(3);
mobileWriteReview表格填写(mobileWriteReview);
返回ok(mobileInviteToReview.render(MOBILE\u WRITE\u REVIEW\u FORM));
}
公共静态结果doReview(){
final Form filledForm=MOBILE_WRITE_REVIEW_Form.bindFromRequest();
if(filledForm.hasErrors()){
//用户没有正确填写所有内容
返回badRequest(MobileInviterView.render(filledForm));
}否则{
//一切都填满了
返回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
    )
@(被邀请的形式:形式[\u])
@样式={
}
@脚本={
}
@导入助手_
@helper.form(routes.mobileinvidetoreview.doReview){
@if(inviteForm.hasGlobalErrors){

@inviteForm.globalError.message

} @inputRadioGroup( //这里有合适的代码 )
}


因此,我的问题是如何在控制器中设置窗体,然后在视图中使用它?

首先,在控制器中呈现窗体时,您的代码出错

解决方案可能如下所示:

控制器:

private static final Form MOBILE\u WRITE\u REVIEW\u Form=Form.Form(MobileWriteReview.class);//此字段声明为最终字段
公共静态结果审查(){
MobileWriteReview MobileWriteReview=新MobileWriteReview(4);
Logger.info(“手机写评论等级=“+mobileWriterView.grade”);
//这是使用现有值填写表单的正确方法
返回ok(views.html.mobileInviterView.render(MOBILE\u WRITE\u REVIEW\u FORM.fill(mobileWriterView));
}
公共静态结果doReview(){
final Form filledForm=MOBILE_WRITE_REVIEW_Form.bindFromRequest();
MobileWriteReview MobileWriteReview=filledForm.get();
Logger.info(“提交的等级=”+MobileWriterView.Grade);
if(filledForm.hasErrors()){
//用户没有正确填写所有内容
返回badRequest(views.html.mobileInviterView.render(filledForm));
}否则{
//一切都填满了
返回ok(“提交的等级=”+mobileWriteReview.Grade);
}
}
视图:

@(inviteForm:Form[models.mobileWriterView])
@导入views.html.helper_
@main(title=“输入无线电组示例”){
@表单(action=routes.Application.doReview()){
@******此助手可以容纳单选按钮的选定值(如果存在)*****@
@inputRadioGroup(
邀请表格(“等级”),
选项=选项(“1”->“1”,“2”->“2”,“3”->“3”,“4”->“4”,“5”->“5”)
)
}
}

请参阅
inputRadioGroup
helper的文档。

首先,您的代码在控制器中呈现表单时出错

解决方案可能如下所示:

控制器:

private static final Form MOBILE\u WRITE\u REVIEW\u Form=Form.Form(MobileWriteReview.class);//此字段声明为最终字段
公共静态结果审查(){
MobileWriteReview MobileWriteReview=新MobileWriteReview(4);
Logger.info(“手机写评论等级=“+mobileWriterView.grade”);
//这是使用现有值填写表单的正确方法
返回ok(views.html.mobileInviterView.render(MOBILE\u WRITE\u REVIEW\u FORM.fill(mobileWriterView));
}
公共静态结果doReview(){
final Form filledForm=MOBILE_WRITE_REVIEW_Form.bindFromRequest();
MobileWriteReview MobileWriteReview=filledForm.get();
Logger.info(“提交的等级=”+MobileWriterView.Grade);
if(filledForm.hasErrors()){
//用户没有正确填写所有内容
返回badRequest(views.html.mobileInviterView.render(filledForm));
}否则{
//一切都填满了
返回ok(“提交的等级=”+mobileWriteReview.Grade);
}
}
视图:

@(inviteForm:Form[models.mobileWriterView])
@导入views.html.helper_
@main(title=“输入无线电组示例”){
@表单(action=routes.Application.doReview()){
@******此助手可以容纳单选按钮的选定值(如果存在)*****@
@inputRadioGroup(
邀请表格(“等级”),
选项=选项(“1”->“1”,“2”->“2”,“3”->“3”,“4”->“4”,“5”->“5”)
)
}
}

请参阅
inputRadioGroup
helper的文档。

在较新版本的Play中-我在2.2.x上-您需要通过视图中的
helper
包访问表单帮助程序。因此,
@form
成为
@helper.form
@inputRadioGroup
成为
@helper。inputRadioGroup
,而
options=options(…)
变成
options=@helper.options(…)
。在较新版本的Play中-我在2.2.x上-您需要通过视图中的
helper
包访问表单帮助程序。因此,
@form
成为
@helper.form
@inputRadioGroup
成为
@helper。inputRadioGroup
,而
options=options(…)
变成
options=@helper.options(…)
@(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
    )
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">
    }
}