gpt4 book ai didi

grails - 将对象属性加载到类类型的变量中后,为什么不能访问我的对象属性

转载 作者:行者123 更新时间:2023-12-02 14:52:05 24 4
gpt4 key购买 nike

这可能是最琐碎的问题,但是我无法理解为什么我在这里得到了java.lang.NullPointerException
basecurr使用已填充的symbolname检索正确的对象,但我无法访问它们:

GSP页面

<g:form name="selectCurrencyForm" url="[action:'getrates',controller:'currency']">
<g:select name="currency_one" from="${Currency?.list()}" optionValue="name" optionKey="id"/>
<g:submitButton name="submit" value="Show Rates" />
</g:form>

Controller 中的方法:
def getrates(){
Currency basecurr = Currency.get(params.currency_one)
println basecurr.symbol
}

类别货币
class Currency {
String symbol
String name
String rate

static constraints = {
}
}

当访问 java.lang.NullPointerExceptionsymbolbasecurr属性时,上面的方法抛出 println
添加异常堆栈
    2014-07-25 00:35:47,214 [http-bio-8080-exec-6] ERROR errors.GrailsExceptionResolver  -           NullPointerException occurred when processing request: [GET] /Appname/Controller/getrates
Stacktrace follows:
Message: null
Line | Method
->> 26 | getrates in exchangeratechecker.ExchangeRateController$$EOkyECes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 198 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter
| 1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread

最佳答案

我会尝试编写一个集成测试以消除GSP代码。您可以通过ID获取货币对象并进行打印吗?您正在使用哪种数据库?

void "Getting Currency"() {
given:
def currency= Currency.findById(1L)
println("Currency: "+currency)
println("Currency Symbol: "+currency.symbol)
expect:
currency != null
}

关于grails - 将对象属性加载到类类型的变量中后,为什么不能访问我的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24939735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com