2013-07-01 31 views
1

在我GSP我有類似:正確解碼Grails URL參數?

<head> 
    <meta property="og:image" 
    content="${createLink(controller:'main', action:'getImage', id:item.id, params:[width: 115, height:200], absolute : true)}" /> 

</head> 

當我看到生成我發現代碼:

<meta property="og:image" 
    content="http://www.myurl.com/main/getImage/faf878ef93996f26c1?width=115&amp;height=200" /> 

這樣做的問題是,有一些放大器;裏面的值。

在我的控制器:

】這個params是這樣的:

[width:115, amp;height:200, id:faf878ef93996f26c1, action:getImage, controller:main] 

的問題是,params.height不工作了,因爲在放大器;再次。

如何正確解碼此網址? Grails是否有放置放大器的方法?裏面的網址?

當我做我的身體GSP以下:

<body> 
    ${createLink(controller:'main', action:'getImage', id:item.id, params:[width: 115, height:200], absolute : true)}" 
</body> 

我得到正確的網址:

http://www.myurl.com/main/getImage/faf878ef93996f26c1?width=115&height=200

爲什麼Grails中設置這些URL不同?如何解決這個問題?

回答

1

問題是你正在將你的鏈接渲染成gsp中的字符串,所以在打印出來之前,grails對它進行編碼。你甚至不必有一個鏈接,只要嘗試

「$ {M & m}」這樣,你會看到Grails的呈現了這一點爲m &放大器; M

一個解決方案是使用直接渲染,我相信繞過grails中的額外編碼

<% out << '<meta property="og:image" content="' + createLink(controller:'main', action:'getImage', id:item.id, params:[width: 115, height:200], absolute : true) + '" />' %> 
+0

這不是我的工作得到了頂部

認沽以下內容:<的sitemesh:captureMeta gsp_sm_xmlClosingForEmptyTag = 「/」 屬性= 「OG:圖像」 內容=」 .... – confile

+0

難道我錯過了什麼? – confile

0

您也可以關閉該特定頁面的默認編碼。在GSP頁面

<%@page defaultCodec="none" %> 
+0

這不起作用,我得到了同樣的結果,還有其他建議嗎? – confile