Grails 类:java.lang.String没有这样的属性:id

Grails 类:java.lang.String没有这样的属性:id,grails,Grails,我将employee对象从Project_级别控制器发送到_add_members视图,然后从那里将employee对象发送到Project_权限控制器。保存id时出现以下错误:在以下行中没有此类属性:class:java.lang.String的id:proj_permission.setId_of_employee(emp.id) 类项目\u levelController{ 创建级别()后定义身份验证{ //在上述标高下创建标高 def res=Project_level.findByLe

我将employee对象从Project_级别控制器发送到_add_members视图,然后从那里将employee对象发送到Project_权限控制器。保存id时出现以下错误:在以下行中没有此类属性:class:java.lang.String的id:proj_permission.setId_of_employee(emp.id)

类项目\u levelController{
创建级别()后定义身份验证{
//在上述标高下创建标高
def res=Project_level.findByLevel_name和level_no(params.level_name,params.level_no)
//def res=null
如果(res)
{
flash.message='level name已被采用'
重定向(操作:“右”)
}
否则{
如果(参数enter==“下一步”)
{
def proj_lev_right=新项目的级别右(参数[“项目级别右”])
proj_lev_right.save()项目
proj_lev_right.errors.allErrors.each{println it}
session.proj_lev_right=proj_lev_right
def proj_lev=新项目级别(参数[“项目级别”])
proj_lev.setProj_lev_right_id(${proj_lev_right.id}))
项目的proj_lev.id_=项目的session.id_
添加的项目级别mem=0
项目级别保存()
proj_lev.errors.allErrors.each{println it}
session.proj_lev=proj_lev
def emp=Employee.findAllByLevel(项目级别编号)
渲染(视图:“添加成员”,模型:[项目级别:项目级别,项目级别右侧:项目级别右侧,员工:emp])
}
}
}
def_right(){
}
}
/*****************************************************************************/
类项目许可证管理员{
def将员工添加到项目()中
{
def emp=params.employee
def proj_权限=新项目_权限()
项目的proj_permission.id_=项目的session.id_
项目权限。员工设置id(emp.id)
项目权限.id\u项目级别=session.proj\u lev.id
/*def employee_proj_level=Project_level.get(proj_permission.id_of_Project_level)//创建一个空的Project_项目并保存属于Project_level的id_的Project level字段
def employee_proj_level_right=新项目_level_right()//创建空项目_level_right
employee\u proj\u level\u right=Project\u level\u right.get(employee\u proj\u lev\u right\u id)//空的Project\u level\u right用于存储“proj\u lev\u right\u id”给定的特定级别的默认权限
proj_permission.setId_of_project_level_right(${employee_proj_level_right.id})//在id_of_proj_level_right中保存员工项目_level_right
*/
项目权限.id\u项目级别的权限=session.proj\u lev\u right.id
渲染“哈里”
}
/**********************************************************/
添加到项目中


此代码有问题:

   def emp = params.employee
      ....  
  proj_permission.setId_of_employee(emp.id)
您从
params
获取
emp
,这是一个字符串(可能是员工id),然后您试图从中访问id字段,从字符串对象访问id字段?这就是问题所在

可能的解决办法:
def emp=params.employee
替换为
def emp=employee.get(params.employee)

您介意格式化此问题并提供相关代码吗?
   def emp = params.employee
      ....  
  proj_permission.setId_of_employee(emp.id)