我無法讓我的Groovy-Grails GSP在AJAX g:submitToRemote調用中傳遞一個ID,而無需在ID周圍注入不需要的編碼方括號。GSP g:submitToRemote調用注入周圍不需要編碼的方括號ID
我有一個頂級域名Top,它包含一個Section類的Map,名爲sections,每個Section都包含一個SubSection。
我需要通過g:submitToRemote調用將SubSection的ID傳遞迴服務器。
我可以用下面的,其中「部1.」是地圖的實際字符串鍵顯示在GSP分段ID:
${topInsatance.sections.sectionA.subSection.id}
在我的例子
因此,該ID是122
造成不好的POST<g:submitToRemote url="[action:'update', id: topInsatance.sections.sectionA.subSection.id ]" value="Update">
:
.../update%5B122%5D
只是作爲一個實驗,我試圖通過只是topInstan ce.id,這在我的例子是116:
<g:submitToRemote url="[action:'update', id: topInsatance.id ]" value="Update">
導致良好的POST:
.../update/116
它具有正確的格式,但錯誤的ID。我需要subSection ID。
我也試過:
<g:set var="subSection" value= "${topInsatance.sections.sectionA.subSection}" />
然後:
<g:submitToRemote url="[action:'update', id: subSection.id ]" value="Update">
造成不良POST:
.../update%5B122%5D
我也試過:
<g:set var="subSectionId" value= "${topInsatance.sections.sectionA.subSection.id}" />
然後:
<g:submitToRemote url="[action:'update', id: subSectionId ]" value="Update">
造成不良POST:
.../update%5B122%5D
所以它總是把編碼括號的subSectionId,不管我怎麼努力。
爲什麼
topInsatance.id
工作,但
subSection.id
subSectionId
不行?
參考:What does %5B and %5D in POST requests stand for?
編輯:添加有關領域類的更多信息。頂級域名是:
class Top {
Map sections
static hasMany = [ sections: Section ]
...
}
class Section {
SubSection subSection // only one
static belongsTo = [ top: Top ]
...
}
class SubSection {
// some content
}
當應用程序運行時,帶有「sectionA」鍵的部分被添加到頂部實例部分Map中。
「sections」是您的域類的集合嗎?如果是這樣,那麼括號就在那裏。 –
是的,章節是一個集合(Map),但是我引用了一個特定的'sectionA',並獲取它的子部分ID。 (每個部分只有一個子部分。)如何防止括號插入? – J21042
可能與問題無關,但爲什麼在'topInsatance.sections.'sectionA'.subSection.id'中爲'sectionA'引用了引號? –