Grails 类:kaf82.portal.PersonsController没有此类属性:currentperson
以下是控制器的代码:Grails 类:kaf82.portal.PersonsController没有此类属性:currentperson,grails,Grails,以下是控制器的代码: package kaf82.portal import javax.xml.parsers.DocumentBuilderFactory class PersonsController { def personList = [] String personsFile = new File('media/data/personsData.xml').text def allpersons () { def persons =
package kaf82.portal
import javax.xml.parsers.DocumentBuilderFactory
class PersonsController {
def personList = []
String personsFile = new File('media/data/personsData.xml').text
def allpersons () {
def persons = new XmlParser().parseText(personsFile)
[persons: persons]
}
def currentperson () {
int id=params.id.toInteger()
getPersons()
[currentperson=personList.get(id-1)]
}
def getPersons() {
def builder = DocumentBuilderFactory.newInstance().newDocumentBuilder()
def inputStream = new ByteArrayInputStream(personsFile.bytes)
def root = builder.parse(inputStream).documentElement
def persons = root.childNodes
(0..<persons.length).each{ processPerson(persons.item(it)) }
...
您可能希望使用
[currentperson=personList.get(id-1)]
创建一个映射,但此语法错误
[currentperson: personList.get(id-1)]
此外,此
个人列表作为属性看起来是错误的。假设第17行为:
[currentperson=personList.get(id-1)]
您没有正确初始化映射(请参阅)。正确的解决办法是:
[currentperson: personList.get(id-1)]
否则,编译器应该有一个变量currentperson
,您想给它赋值。(0..也感谢您的帮助和文档。
[currentperson: personList.get(id-1)]