1
我想填充grails選擇一些從SQL返回的行,但由於某種原因,它不工作。我有以下代碼:麻煩填充SQL語句的Grails選擇框
控制器:
import groovy.sql.Sql
class ClinicalRequirementsController {
static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
def dataSource //injection of dataSource
def create() {
def db = new Sql(dataSource)
def terms = db.rows("""SELECT stvterm_code
FROM stvterm
WHERE stvterm_fa_proc_yr = (SELECT stvterm_fa_proc_yr
FROM stvterm, current_term
WHERE stvterm_code = current_term.cur_term)
ORDER BY stvterm_code ASC""")
[terms: terms]
db.close()
[clinicalRequirementsInstance: new ClinicalRequirements(params)]
}
}
GSP選擇:
<g:select name="insuranceSemesterVerified" from="${terms}" required="" value="${clinicalRequirementsInstance?.insuranceSemesterVerified}" valueMessagePrefix="clinicalRequirements.insuranceSemesterVerified"/>
我很爲難。希望有人能指出我錯在哪裏。我已經在別處對數據庫進行了查詢驗證。
謝謝!那就是訣竅。能夠在我的其他gsps中重用該代碼而不必將代碼放入每個單獨控制器的最佳方式是什麼? – user1587687
爲此,我通常會創建一個自定義taglib並讓該taglib呈現g:select - 您的調用將類似於: – Kelly
對不起 - 最後一條評論被切斷:爲了做這樣的事情,我通常創建一個自定義taglib, taglib呈現'g:select'。或者你可以創建一個返回列表的服務方法;那麼你會將你的服務連接到任何需要該列表的gsp(參見問題2510929)。你的選擇會有一個'from'像; 'from =「$ {myService.listTerms()}」' – Kelly