2010-09-22 4 views
-5

Voici mon code. Ici, je reçois une erreur qui est 'Aucune propriété: pour la classe: emp.EmployeeController'. Je pense que je fais quelque chose de mal ici. Un conseil?Grails error: Aucune propriété: pour la classe:

def list ={ 

    def id=params.id 
    def results 

    String employee="SELECT empName, empDate, empNo from employee where empId='id'"  
    String referrer="SELECT empName, empDate, empNo from referer where empId='id'" 


    def employeeInstanceList = new ArrayList<Employee>() 
    Sql sql = new Sql(dataSource) 
    def joining=null 
    joining = sql.rows("select joining from employee_dates") 


    if (joining!=null)  
    results = sql.eachRow(employee) 
    employeeInstanceList=getCalculatedEmployeeData(results) 
    /*{ 

     def employee = new Employee() 
     employee.setempName it.empName 
     employee.setEmpNo it.empNo 
     employee.setEmpDate it.EmpDate 
     employeeInstanceList.add employee 
    }*/ 

    else 

    results = sql.rows (currentDaySql) 
    employeeInstanceList=getCalculatedEmployeeData(results) 
    /*{ 
     def employee = new Employee() 
     employee.setempName it.empName 
     employee.setEmpNo it.empNo 
     employee.setEmpDate it.EmpDate 
     employeeInstanceList.add employee  }*/ 

    } 


    [employeeInstanceList: [employeeInstanceList: employeeInstanceTotal: Employee.count()] 
} 


def getCalculatedImpactData(def results){ 
     def employee = new Employee() 
     employee.setempName it.empName 
     employee.setEmpNo it.empNo 
     employee.setEmpDate it.EmpDate 
     employeeInstanceList.add employee  }*/ 
    return [employeeInstanceList: employeeInstanceList] 
} 

Merci, Meghana

Répondre

2

Il y a tellement de mal à ce code, je ne sais pas où commencer ...

Mais pour éviter d'en faire descendre votes j'ai essayé:

J'ai essayé de copier votre code dans un IDE et d'essayer de déterminer ce que vous essayez d'atteindre mais ce que vous ne pouvez pas faire.

C'est aussi proche que je pouvais l'obtenir:

def list = { 
     def id = parmas.id 
     def results 

     String employee = "SELECT empName, empDate, empNo from employe" 

     def employeeInstanceList 
     Sql sql = new Sql(dataSource) 
     def joining = sql.rows("select joining from employee_dates") 

     if (joining != null) { 
      results = sql.eachRow(employee) 
      employeeInstanceList = getCalculatedEmployeeData(results) 
     } 
     else { 
      results = sql.rows(currentDaySql) 
      employeeInstanceList = getCalculatedEmployeeData(results) 
     } 

     [employeeInstanceList: employeeInstanceList, employeeInstanceTotal: Employee.count()] 
    } 


    def getCalculatedImpactData(def results) { 
     def employeeInstanceList = new ArrayList<Employee>() 
     results.each { it -> 
      def employee = new Employee() 
      employee.empName = it.empName 
      employee.empNo = it.empNo 
      employee.empDate = it.EmpDate 
      employeeInstanceList.add(employee) 
     } 
     return employeeInstanceList 
    } 

mais il est encore une allusion currentDaySql variable qui n'existe pas et je ne suis pas sûr de ce que vous essayez de faire avec le 'rejoindre' le résultat.

Vous avez vraiment besoin de lire les bases de Groovy.

2

i seconderait leebutts réponse ... mais juste un pointeur, l'utilisation du mot-clé il est généralement limitée à des fermetures ... donc au lieu de le faire en java:

List l = []; 
for (Iterator i = l.iterator(); i.hasNext();) { 
    ...do something adressing List l at position i... 
} 

vous pourriez faire en Groovy/Grails:

list.each { it -> 
    ...do something with each object in the list (it)... 
} 

mais vous devriez lire vraiment sur les fermetures groovy à http://groovy.codehaus.org/Closures

0

Le bloc de code où l'erreur se produit est probablement:

def getCalculatedImpactData(def results){ 
    def employee = new Employee() 
    employee.setempName it.empName 
    employee.setEmpNo it.empNo 
    employee.setEmpDate it.EmpDate 
    employeeInstanceList.add employee 
    return [employeeInstanceList: employeeInstanceList] 
} 

it est définie nulle part (indice: l'erreur de compilation vous a dit cela). Comme Sebastian a dit, it est généralement utilisé dans les fermetures; ce que vous avez défini ici est une fonction. Vraisemblablement, vous vouliez utiliser results (ou quelque chose) au lieu de it ici.

Je suppose que certaines des choses dans votre code (par exemple l'ouverture/fermeture de commentaire) n'étaient pas là et ont été ajoutées entre quand vous avez vu l'erreur et quand vous avez posté le code. Sinon, vous auriez d'autres erreurs.

Questions connexes