当我尝试访问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.findById
的id
变量的值是不可接受的
可能是一个负数。阅读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);
}