grails - <g:select>中的Grails <g:if>

标签 grails select gsp

我在<g:select>文件中有这个.gsp。但是,与任何普通的<g:select>不同,如果满足特定条件,则该属性将具有disabled=""属性。

遵循代码:

<g:select name="test" 
          from="${["foo1","foo2"]}" 
          <g:if test="${true}">disabled=""</g:if> />

返回错误:Grails tag [g:select] was not closed
但是当我将其更改为:
<g:select name="test" 
          from="${["mu1","mu2","mu3"]}" 
          ${ if(true) { println "disabled=\"\"" } }/>

它返回此错误:Attribute value must be quoted.
两条错误消息都在org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException异常(exception)下

问题是我们如何使这项工作可行?如果不使用自定义TagLib,是否有可能的答案?

最佳答案

GSP表单字段标签将disabled视为 bool(boolean) 属性,因此您可以说

<g:select .... disabled="${true}" />

通常,您应该能够在常规的Groovy-truth规则下使用任何表达式,但我认为它对字符串“true”和“false”具有特殊情况(在Groovy-truth规则下,后者通常被视为true,因为-空字符串)。如有疑问,您可以随时说
disabled="${(someExpression) as boolean}"

关于grails - <g:select>中的Grails <g:if>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12507918/

相关文章:

grails - Grails多环境配置 block

MySQL 触发器与 if 语句尝试查询不同的表以插入值

html - 防止选择下拉菜单打开但允许其事件触发

grails - 错误 500 : Error processing GroovyPageView: null

grails - 包 javax.mail 不存在

Grails 运行应用程序 "Property source name must contain at least one character"

html - GSP/JSP for循环-第一个节点 'selected'类

Grails grailApplication.controllerClasses 按包排序 Controller

unit-testing - 可以以编程方式生成 jpeg 图像吗?

C++ - 函数选择显示读取后标准输入中有数据