0
我在我的服务类中编写了一个函数,用于评估从控制器传递的参数,但Grails返回错误的评估结果。Grails对表达式的错误评估
def list(String q,String qval,String srt,String ord){
log.debug("q==="+q)
log.debug("qval==="+qval)
log.debug("srt==="+srt)
log.debug("order==="+ord)
所有这些调试语句按预期打印为空。现在
boolean qvalbool=qval?.trim()
log.debug("qvalbool===>>"+qvalbool) prints true!!!
!StringUtils.isEmpty(q) && !StringUtils.isEmpty(qval) returns true!!
这两个语句应返回false,而他们正在返回true这是怎么回事?有任何想法吗?
我使用Grails 2.4.2
也许输入是“空”作为字符串?这就是为什么当你打印它们时你会看到null的原因? – evanwong 2015-02-11 19:53:14
输入为空,但条件结果在显示为真时应为false – 2015-02-11 19:55:09
运行调试程序并检查确切值是什么。正如@evanwong提到的 - 你可能会得到''null''而不是'null',这就是为什么其他条件被评估为'true'的原因。如果你想打印确切的数据类型,试试'log.debug(q?.dump())',看看你是否得到'null'或'' –
2015-02-11 20:07:17