如何使用Java Play和bootstrap内联表单元素?

时间:2016-02-26 07:50:32

标签: java forms twitter-bootstrap playframework scala-template

我是Java Play框架的新手,我很难以我想要的方式获取模板。例如,我希望案例类型和日期字段在这里是同一行。每当我使用内联时,字段会重叠,而水平表单则无法完成工作。有任何想法吗? 代码示例和图像使用水平字段构造函数。 enter image description here

@(caseForm: play.data.Form[Case])

@import tags._
@import views.html.common._

@import models._

@implicitFieldConstructor = @{
    b3.horizontal.fieldConstructor("col-md-2", "col-md-10")
}
@inlineFC = @{
    b3.inline.fieldConstructor
}
@caseTypeFC = @{
    b3.horizontal.fieldConstructor("col-md-2", "col-md-4")
}
@dateFC = @{
    b3.horizontal.fieldConstructor("col-md-7", "col-md-4")
}

@main("New Case Info") {
    <div class="page-header">
        <h2>Case Information</h2>
    </div>
    <fieldset>
    @b3.form(action = routes.CaseController.save()) {
        <div class="form-group">
            @b3.select(caseForm("id"),
            options = Seq("G" -> "Government Reclamations", "P" -> "POA", "R" -> "Reversals/Deletions", "U" -> "Unresolved/Dishonored Returns"),
            '_label -> "Case Type",
            '_default -> "-- Select an Option --")(caseTypeFC, implicitly[Messages])
            @datePicker(caseForm("date"), '_label -> "Date", 'placeholder -> "mm/dd/yyyy")(dateFC)
        </div>

        <div class="form-group">
            <div class="col-md-offset-2">
                <input type="submit" class="btn btn-success" value="Save"/>
                <button type="button" class="btn btn-warning" onclick="window.location='@routes.CaseController.list()';" value="cancel">
                Cancel</button>
            </div>
        </div>
    }

    </fieldset>

}

1 个答案:

答案 0 :(得分:0)

我通过使用play-bootstrap的垂直隐式构造函数修复了这个问题。然后我可以像这样指定每个字段的列宽:

@main("New Case Info") {
<fieldset>
    @b3.form(action = routes.CaseController.save()) {
    <div class="row">
        <div class="col-md-4">
            @b3.select(caseForm("caseType"),
                options = options(Case.typeOptions),
                '_id -> "type_selection",
                '_label -> "Case Type",
                '_default -> "-- Select a Type --")
        </div>
        <div class="col-md-3">
            @datePicker(caseForm("date"), '_label -> "Date", 'placeholder -> "mm/dd/yyyy")
        </div>
    </div>
 </fieldset>

}

请注意,b3构造函数会自动将表单组类添加到输入字段,因此我不需要它。有关play-bootstrap的详细信息,请访问:http://adrianhurt.github.io/play-bootstrap/