2016-03-04 63 views
0

我有一個GSP與下面的代碼..是否有SiteMesh的不支持Grails的任何變通辦法,如果開放HTML body標籤報表

<g:if test="${'Ethan Hunt'.equals(agentName)}"> 
<body> 
     Secret Mission 
</g:if> 
     Unclassified stuff 
    </body> 

眼下這給出了一個例外..

org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException:   
Grails tag [sitemesh:captureBody] was not closed 

根據this,在使用sitemesh進行佈局的Grails中不支持此類用法,唯一的解決方法是將sitemesh.preprocess配置爲false。

但是這篇文章相當老,所以我想知道現在是否有更好的解決方法?

當然,一個顯而易見的方法是重新將代碼移動到body內部,但假設這不是一個選項(這個示例是我的實際代碼的簡化,這個重構選項不起作用) 。

是否有任何其他選項可以避免此異常,但仍然保留此代碼?

+0

一個非簡化的例子呢? –

回答

1

除了重構代碼或關閉預處理(對性能影響相當大)之外,沒有更好的解決方法。

自從那時起,Sitemesh和Grails都沒有使用Sitemesh。

+0

感謝Josh,我猜想唯一的選擇是重構實際代碼的痛苦任務。 – AbuMariam

相關問題