0
此問題是here問題的延續。將Grails邏輯從視圖移至控制器
下面的代碼是從我的意見之一,它工作正常,但我有困難將此代碼移動到控制器。如果我的包和類在下面的代碼中不清楚,請查看上一個問題以瞭解它們的排列方式。
<g:set var="roleAdmin" value='${org.me.example.userrole.Role.findByAuthority("ROLE_ADMIN")}' />
<g:set var="roleOfficeProfessional" value='${org.me.example.userrole.Role.findByAuthority("ROLE_OFFICE_PROFESSIONAL")}' />
<g:set var="roleDriver" value='${org.me.example.userrole.Role.findByAuthority("ROLE_DRIVER")}' />
<g:select name="loggedBy.id" from="${org.me.example.userrole.UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user}" optionKey="id" value="${loadInstance?.loggedBy?.id}" />
這可能是我的一個基本的誤解,但我不能得到任何的是Grails的創造,我在我的控制器已經改變了我的意見,工作方法,只有方法(即list
,create
,delete
,edit
等)將起作用。任何援助/建議都會有所幫助。
格雷格的答案是現貨。我要添加的唯一說明是注意[loadInstance:loadInstance,users:user]是從控制器向視圖傳遞數據的重要部分。代碼行代表「返回」或將地圖傳遞給視圖。它使地圖中的項目內容可用於gsp中的$ {}模板語法。對不起,如果這是重複的或過於簡單化的解釋,但似乎這是混淆成立的地方。 –
@ Bill Pfeiffer不,歡迎解釋。我在業餘時間學習Grails/Groovy,花了2個月時間休息並忘了很多。格雷格的回答讓我有了面子。該'option鍵=「ID」'在我看來參數創建一個錯誤,我仍然在什麼'value'說法實際上是在做有點不清楚......但我可以在這兩個讀了。我唯一的問題是如何從視圖傳遞參數給控制器?我理解控制器的'[key:value]'部分,但是當我使用'from =「$ {users}」'時,我怎樣將一個參數傳遞給控制器? – ubiquibacon
爲什麼你需要將視圖中的東西傳遞給控制器來填充SELECT? – Gregg