发生了IllegalArgumentException:加载时需要id



当我尝试访问findById时,它显示以下内容:

IllegalArgumentException "id to load is required for loading"

下面是我的代码:

package controllers;
import play.*;
import play.mvc.*;
import java.util.*;
import models.*;
public class Application extends Controller {
    public static void index() {
       render();
    }
    public static void saveUser(String name)
    {
        User1 user =new User1(name);
        String res = "";
        if( user.save()!=null){
            res="Stored Successfully";
        }
        else{
            res="Failed to store";
        }
        render(res);
    }
    public static void showUser(Long id)
    {
       User1 user=  User1.findById(id);
       render(user);
    }
}

和下面是我的路由文件,我不明白为什么会出现错误和非法参数异常。#路线#该文件定义了所有应用程序路由(优先考虑高优先级路由)# ~ ~ ~ ~

# Home page
GET     /                                       Application.index
# Ignore favicon requests
GET     /favicon.ico                            404
# Map static resources from the /app/public folder to the /public path
GET     /public/                                staticDir:public
# Catch all
*       /{controller}/{action}                  {controller}.{action}

IllegalArgumentException被抛出,因为id为空。确保通过请求传递正确的值。在routes文件中按如下方式映射控制器方法可以防止传递null:

GET /user/{id} Aplication.showUser

您传递给User1.findByIdid变量的值是不可接受的

可能是一个负数。阅读User1.findById的文档,找到id变量的需求。

在调用findById(id)之前,尝试以下代码检查id的值:

    public static void showUser(Long id)
    {
       System.out.println("Application,showUser(id = " + id + " );"
       User1 user=  User1.findById(id);
       render(user);
    }

相关内容

  • 没有找到相关文章

最新更新