没有这样的 属性:class 的当前人:kaf82.portal.PersonsController
No such property: currentperson for class: kaf82.portal.PersonsController
这里是控制器的代码:
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)) }
...
我正在使用 Grails 2.4.4。
这是堆栈跟踪
Line | Method
->> 17 | currentperson in PersonsController.groovy
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 198 | doFilter in PageFragmentCachingFilter.java
| 63 | doFilter . . in AbstractFilter.java
| 53 | doFilter in GrailsAnonymousAuthenticationFilter.java
| 49 | doFilter . . in RequestHolderAuthenticationFilter.java
| 82 | doFilter in MutableLogoutFilter.java
| 1142 | runWorker . . in java.util.concurrent.ThreadPoolExecutor
| 617 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run . . . . . in java.lang.Thread
您可能想使用 [currentperson=personList.get(id-1)]
创建地图,但此语法错误。
[currentperson: personList.get(id-1)]
另外这个 personList
作为 属性 看起来不对。
假设第 17 行是:
[currentperson=personList.get(id-1)]
您没有正确初始化地图(参见 groovy docs)。正确的解决方案是:
[currentperson: personList.get(id-1)]
否则编译器应该有一个变量currentperson
,你想给它赋值。
这里是控制器的代码:
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)) }
...
我正在使用 Grails 2.4.4。
这是堆栈跟踪
Line | Method
->> 17 | currentperson in PersonsController.groovy
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 198 | doFilter in PageFragmentCachingFilter.java
| 63 | doFilter . . in AbstractFilter.java
| 53 | doFilter in GrailsAnonymousAuthenticationFilter.java
| 49 | doFilter . . in RequestHolderAuthenticationFilter.java
| 82 | doFilter in MutableLogoutFilter.java
| 1142 | runWorker . . in java.util.concurrent.ThreadPoolExecutor
| 617 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run . . . . . in java.lang.Thread
您可能想使用 [currentperson=personList.get(id-1)]
创建地图,但此语法错误。
[currentperson: personList.get(id-1)]
另外这个 personList
作为 属性 看起来不对。
假设第 17 行是:
[currentperson=personList.get(id-1)]
您没有正确初始化地图(参见 groovy docs)。正确的解决方案是:
[currentperson: personList.get(id-1)]
否则编译器应该有一个变量currentperson
,你想给它赋值。