【问题标题】:java play 2.0 form not bindingjava play 2.0表单不绑定
【发布时间】:2013-12-10 04:03:48
【问题描述】:

有人知道为什么我的表单没有绑定

这就是我所拥有的

public class Account {
    @Required
        private String id = "";
  ...
}

controlers.Application.java 中的一个表单

   static Form<Account> accountForm = Form.form(Account.class);
with a method
   public static Result addAccount() {
        Form<Account> filledForm = accountForm.bindFromRequest();
        if (filledForm.hasErrors()) {
   ...
    ...

还有一个 scala 表单模板:

@form(action = routes.Application.addAccount()) {
  @inputText(accountForm("id"))
   <input type="submit" name="action" value="submit ID"/><br />
}

哦,路由线定义为:

GET /createAccount controllers.Application.addAccount()

我打印了收到的数据,它得到了 id 值和提交的动作。

我已经打印了所有验证错误,它似乎在 id 字段上它只是说 error.required 不知道因为我输入的地址行是:

/createAccount?id=1001&action=submit+ID

但是 if 语句 hasErrors() 总是返回 true

请 - 我有什么明显的遗漏吗?

【问题讨论】:

  • 请花 1 分钟的时间,用代码重新格式化您的问题! ID 似乎未填充或发送回服务器,您的 ID 是否正确发送回?
  • 请重新格式化您的代码,它不可读。要做两个测试:1-删除所需的标签。表格提交了吗? 2- 转到 /createAccount 并手动填写表格。然后提交。表格提交了吗?
  • 您的班级帐户中是否有适当的 java bean getter 和 setter?如果字段是私有的,则需要它。
  • @adis 我为格式错误的代码道歉 - 我没有意识到 - 我有视力障碍。不以此为借口:)只是尝试复制并粘贴代码,使用我的屏幕阅读器判断格式可能会很棘手-一旦所有内容都在html中
  • @memainjm 同上

标签: java forms http playframework


【解决方案1】:

当你的 bean 有私有字段时,你需要定义适当的 java bean getter 和 setter(绑定由需要这个的 SpringDataBinder 完成)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多