当前位置: 首页 > 知识库问答 >
问题:

Grails对表达式的错误评估

孔志强
2023-03-14

我在服务类中编写了一个函数,在该函数中,我评估了从控制器传递的参数,但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)

所有这些调试语句按预期打印为null。现在

boolean qvalbool=qval?.trim()
log.debug("qvalbool===>>"+qvalbool) prints true!!!

!StringUtils.isEmpty(q) && !StringUtils.isEmpty(qval) returns true!!

两个语句在返回true时都应该返回false,这是怎么回事?有什么想法吗?

我正在使用grails 2.4.2

共有1个答案

薛华容
2023-03-14

Evan Wong的评论很可能是正确的,即您看到的是一个包含单词null的字符串

通常,当Groovy打印出值时,它们的类型并不明显。

groovy:000> null
===> null
groovy:000> 'null'
===> null

同样在Groovy中,表达式计算为字符串“null”。

这是一种更改此参数值的简单方法,因此它包含字符串“null”。

 类似资料:
  • 问题内容: 什么是实现将采用字符串并根据运算符优先级输出结果的python程序的最佳方法(例如:“ 4 + 3 * 5”将输出19)。我在谷歌上寻找解决这个问题的方法,但是它们都太复杂了,我正在寻找一个(相对)简单的方法。 澄清:我需要比eval()稍微先进的东西-我希望能够添加其他运算符(例如,最大运算符-4 $ 2 = 4),或者,我对此在学术上比对专业更感兴趣-我想知道 该怎么 做。 问题答

  • 本文向大家介绍评估后缀表达式,包括了评估后缀表达式的使用技巧和注意事项,需要的朋友参考一下 为了求解数学表达式,我们需要前缀或后缀形式。将中缀转换为后缀后,我们需要后缀评估算法来找到正确的答案。 在这里,我们还必须使用堆栈数据结构来解决后缀表达式。 从后缀表达式中,找到一些操作数后,将它们压入堆栈。找到某个运算符后,将从堆栈中弹出两个项目,并按正确的顺序执行操作。之后,结果也被压入堆栈中以备将来使

  • 我们正在使用Spring webflow ThymeLeaf并尝试在html页面中访问session.getAttribute()。 有点新的百里香叶,我知道百里香叶有2种方法来解决会议即。${session.something}和$ { # session . get attribute(' something ')}。 我们使用的代码类似于下面的代码,偶尔会失败。 在本地环境中,我从未见过故障

  • 问题内容: 在我们的项目中,我们需要在没有任何数据库服务器的情况下评估SQL语句。您能否建议一个免费的Java库,该库能够评估基于数学的SQL语句并返回结果? 例如; 输入 输出 可能会被称为 问题答案: 如下面的代码所示,可以使用ZQL来实现。但是我严重建议您选择一个简单的嵌入式数据库,例如H2(此处为示例),而应使用它(项目运行状况要高得多)。 使用H2: 输出: 要使用它,请将其添加到您的:

  • 是OCaml内置的函数。 经验: 我的问题:的求值顺序是什么? 是先将求值为8,然后将求值为11?还是先将求值为函数,然后将用作函数的参数? 谢谢

  • 问题内容: 我有一个在Tomcat 5.5上运行的JSP页面。我有以下代码: 我得到的输出是: 我无法弄清楚为什么forEach循环有效,但输出无效。任何人可能提供的任何帮助都将是巨大的。 问题答案: 我知道默认情况下应该启用它,但是我一次又一次地跨页面(甚至是更改行为的同一页面)运行EL处理不会发生的页面。将以下内容添加到任何此类页面的顶部应可解决此问题: 我将它添加到每个页面中,因为它不会造成