当前位置: 首页 > 知识库问答 >
问题:

play framework 1.2.5绑定一个模型(GenericModel)异常(numberformatexception)

胥智
2023-03-14

我的模型:

@Entity(name = "WORKFLOW_ROLE")
public class WorkflowRole extends GenericModel {

   @Id
   @Column(name = "IDNR", unique = true, nullable = false, precision = 22, scale = 0)
   @Required
   @Min(0)
   public long id;
}

我的控制器-动作:

public static void postNewRole(@Valid models.WorkflowRole role) {
    try
    {
      role.workflow = models.Workflow.findById(role.workflow.id);

      if (validation.hasErrors()) {
        params.flash(); // add http parameters to the flash scope
        validation.keep(); // keep the errors for the next request
        newRole();
      }

      role.create();
      flash.success("Rolle erstellt");
      index();
    }
    catch (Exception e)
    {
        params.flash();
        validation.keep();
        flash.put("error", e.getMessage());
        newRole();
    }
}
@6chopgia8
Internal Server Error (500) for request POST /workflowrole/postnewrole

Oops: UnexpectedException
An unexpected error occured caused by exception UnexpectedException: Unexpected Error

play.exceptions.UnexpectedException: Unexpected Error
    at play.data.validation.ValidationPlugin.beforeActionInvocation(ValidationPlugin.java:80)
    at play.plugins.PluginCollection.beforeActionInvocation(PluginCollection.java:639)
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:134)
    at Invocation.HTTP Request(Play!)
Caused by: play.exceptions.UnexpectedException: Unexpected Error
    at play.db.jpa.JPAPlugin.bind(JPAPlugin.java:84)
    at play.plugins.PluginCollection.bind(PluginCollection.java:579)
    at play.data.binding.Binder.bind(Binder.java:112)
    at play.mvc.ActionInvoker.getActionMethodArgs(ActionInvoker.java:651)
    at play.data.validation.ValidationPlugin$Validator.validateAction(ValidationPlugin.java:117)
    at play.data.validation.ValidationPlugin.beforeActionInvocation(ValidationPlugin.java:72)
    ... 3 more
Caused by: java.lang.NumberFormatException: For input string: "sdf"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Long.parseLong(Long.java:410)
    at java.lang.Long.parseLong(Long.java:468)
    at play.data.binding.Binder.internalDirectBind(Binder.java:612)
    at play.data.binding.Binder.directBind(Binder.java:529)
    at play.db.jpa.JPAPlugin.bind(JPAPlugin.java:76)
    ... 8 more

是否有人在玩 1.2.5 中遇到类似的泛型模型绑定问题?

共有2个答案

白才艺
2023-03-14

确保路由是使用 POST 而不是 GET 定义的。您应该发布完整的代码,以便更轻松地查明问题。

计胤
2023-03-14

编辑:是的,这似乎是一个bug。补丁:https://gist.github.com/4242156

试着把你的ID设为Long而不是Long-我怀疑这就是活页夹崩溃的原因。原始vars有特殊的逻辑,我认为您的案例演示了一个bug。然而,我认为如果您切换到Long,代码应该可以按预期工作。

通常,应避免数据库绑定对象的基元值,除非可以100%确定数据库中没有空值。(但你的代码应该有效-所以有一个bug)

 类似资料:
  • 我是Jface数据绑定的新手。我正在尝试使用数据绑定来生成表。当任何一个人单击row时,在映射的文本字段中显示vales。当我这样做时,我得到异常。(“java.lang.IllegalArgumentException:Could not find property with name in class class com.swt.pro.model.employee”)下面是类结构。 我有3个

  • 英文原文:http://emberjs.com/guides/object-model/bindings/ 一个绑定在两个属性之间建立了一个连接,当其中一个发生改变时,另外一个将自动更新为新的值。绑定连接同一对象中属性,也可以连接不同对象的属性。不同于其他一些也实现了类似绑定的框架,Ember.js中的绑定可以在任意对象中使用,而并不紧紧局限于视图和模型。 建立一个双向的关联最简单的方法是添加一个

  • 我们要定义一个模型,首先我们会用到define, 它的返回值类似是 Model<TInstance, TAttributes> 。 define<TInstance, TAttributes>(modelName: string, attributes: DefineAttributes, options?: DefineOptions<TInstance>): Model

  • 我在一个razorpage上有一个单选按钮,像这样 表单的模型如下所示 和SQL的模型如下所示 而SQL中的CostCenter的数据类型是varchar(80) 当我保存表单时,CostCenter没有绑定到SQL中的任何值,它将保持为NULL,但表单的其余值将正确保存 那是什么原因造成的呢? 如果选择了“proj”,我想保存值“proj”,如果选择了“dep”,我想保存值“dep” 谢谢 托玛

  • 问题内容: 如何创建绑定到一个并使用(已完成)输出两个字段的指令。从本质上讲,我 从模型到输入 工作都有一个方向,而 从输入到模型却 没有另一方向。如何实现呢? 我有这个HTML: 和一个模型: 边注; 我创建了一个过滤器来拆分这两个值: 而这个指令: 问题答案: 正确的方法(IMO)是按照此处所述创建自定义控件。 作为练习,我在此提琴中实现了它:http : //jsfiddle.net/6cn

  • 本文向大家介绍自定义一个异常类模板的简单实例,包括了自定义一个异常类模板的简单实例的使用技巧和注意事项,需要的朋友参考一下 一:自定义异常类: 二:写一个测试分数的方法类:这里面是抛出一个自己写的异常类 三:写一个测试分数,如果有异常,要捕获,不要抛出了 以上就是小编为大家带来的自定义一个异常类模板的简单实例全部内容了,希望大家多多支持呐喊教程~