播放框架:如何以动态形式为特定字段设置错误消息

时间:2014-08-30 14:50:21

标签: playframework-2.0

我想在其下方的单个字段中显示错误消息。但是在文档中找不到如何设置它。

我的控制器操作:

操作1:通过在Form

中包装模型来创建初始视图
    public static Result retrieveEcommerceTransaction(Long id) {
    Logger.debug("InstantCheck:retrieveEcommerceTransaction()-Retrieving transaction for txn id : " + id);

    if(id != null && (id instanceof Long)) {
        EcommerceRequestManager ecomRequestManager = new EcommerceRequestManager();
        CustomerTransactionProfile customerTransactionProfile = ecomRequestManager.populateCustomerTxnProfile(id);
        Cache.set(String.valueOf(id), customerTransactionProfile);
        if(customerTransactionProfile != null) {
            instantCheckForm = instantCheckForm.fill(customerTransactionProfile);
            return ok(views.html.instantcheck.index.render(instantCheckForm));
        }           
    } 

    return  badRequest(Constants.STATUS_CODE_MISSING_PARAMETERS);
}

操作2:在提交视图中的表单时调用。使用动态表单获取表单值。

    public static Result checkLoanEligibility() {
    String actionUrl = null;
    DynamicForm form = Form.form().bindFromRequest();
    String pan = form.get("n_pan");
        if(pan.isEmpty() || pan.length() != 10) {
        form.reject(new ValidationError("pan", "Invalid PAN value. Please enter a valid PAN value"));
    } else {
                    actionUrl =  <code for calling manager class for post processing.....>
    }

    return ok(actionUrl);
}

查看:

<div>

<div>
<label for="">PAN</label>
<div>
    <input id="i_pan" type="text" name="n_pan" value="@instantCheckForm.field("PAN").value()"/>
    @for(error <- form("pan").errors) {
        <p>@error.message</p>
    }
</div>
</div>

错误讯息:

not found: value form

在第

@for(error <- form("pan").errors) {

我已经按照Play文档创建了这段代码。使用表单时出错(“pan”)。错误?

是否有任何模板可以显示如何使用动态表单和表单包装模型来创建和处理html表单?

此致 苏拉杰

1 个答案:

答案 0 :(得分:0)

在第二个操作中,您似乎没有将Form [CustomerTransactionProfile]传递给模板。这就是为什么变量形式没有在模板中声明。你需要它来传递拒绝。