如何编写选项以便将其生成为HTML选择?这个问题是"选项"需要一个集合,而不是一个数组
这是我拥有的一切。我知道命名惯例很糟糕,我会解决这个问题,但是现在我已经解决了这个问题好几天了。
控制器类
import org.springframework.dao.DataIntegrityViolationException
import grails.plugin.mail.*
class EmailServiceController {
static defaultAction = "contactService"
def contactService() {
def options = new ArrayList()
options.push("Qestions about service")
options.push("Feedback on performed service")
options.push("Other")
options.push("Why am I doing this")
options
}
def send() {
sendMail(){
to "mygroovytest@gmail.com"
from params.email
subject params.subject
body params.information
}
}
}
域类
class EmailService {
static constraints = {
}
}
g:从gsp中选择来电
<g:select name = "subject" from = "${options}" noSelection="Topic"/>
还尝试使用&#34; $ {selectOptions}&#34;而不是&#34; $ {options}&#34;没有运气
def selectOptions() {
def options = new ArrayList()
options.push("Qestions about service": "QAS")
options.push("Feedback on performed service":"FoPS")
options.push("Other":"Other")
options.push("Why am I doing this":"WHY")
return options
}
答案 0 :(得分:6)
好的,我想我可能知道这里发生了什么。这个问题的缺失部分是gsp被称为什么。这是适当的方式:
class EmailServiceController {
def contactService() {
def options = ["Qestions about service", "Feedback on performed service", "Other"]
// assumes you are going to render contactService.gsp
// you have to push the options to the view in the request
[options:options]
}
}
然后在contactService.gsp中你会得到:
<g:select name="subject" from="${options}" noSelection="['Topic': 'Topic']"/>
答案 1 :(得分:3)
您的options
既不是数组也不是地图。存在语法错误。这就是为什么你的选择中只有一个选项。您需要输入真实列表或地图,如下所示:
def selectOptions() {
def options = [:]
options["Qestions about service"] = "QAS"
options["Feedback on performed service"] = "FoPS"
[options:options]
}
使用地图,您可以在视图中使用它:
<g:select name="subject" from="${options.entrySet()}"
optionValue="key" optionKey="value"
noSelection="['Topic': 'Topic']"/>
答案 2 :(得分:0)
您需要在代码中使用双引号,而不是单引号。使用单引号,您只需传递一个看起来像'${options}'
的字符串,而不是传递值为options
的GString。
<g:select name="subject" from="${options}" noSelection="Topic"/>
此外,假设您正在调用contactService
操作,则需要return options
而不是返回options.push("Other")
。 push()
返回一个布尔值,这意味着contactService
的隐式返回是push()
而不是options
的布尔结果。