2010-10-19 85 views
2

我嘗試使用下面的代碼門戶:actionURL Spring MVC的Portlet的

<portlet:actionURL var="actionUrl"><portlet:param name='action' value='viewModules' /></portlet:actionURL> 

創建actionUrl和其映射到一個春天控制器

然而,由於生成的URL的&符號是控制器不響應編碼

例如

<snip>&amp;p_p_lifecycle=1&amp;p_p_state=normal&amp;p_p_mode=view&amp;p_p_col_id=column-1&amp;p_p_col_count=2</snip> 

如果我unencode並粘貼到瀏覽器的工作原理

我已經加入 portlet.url.escape.xml =假 到portal-ext.properties但沒有可用的

莫非任何請點我在正確的方向

非常感謝

+0

編碼的&符號不應該成爲問題,因爲它確實是表示網址的正確方法。你可能在表單動作中使用actionUrl嗎? – heikkim 2010-11-26 06:17:27

+0

是的 - 謝謝你的回覆。我用它的形式 – 2010-11-28 10:26:50

+0

我有同樣的問題......你有沒有找到解決方案? – 2012-07-07 19:13:38

回答

0

在表單操作使用:

<portlet:actionURL var="send" escapeXml="false"/> 
+0

感謝您的回覆,我會給它一個 – 2010-12-02 11:22:03

+0

感謝您的答案,但是這給了這個錯誤 屬性escapeXml無效的標籤actionURL根據TLD 在org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40 ) – 2010-12-06 10:11:05

+0

對於後人,「escapeXml invalid for tag」錯誤很可能是因爲您沒有針對Portlet 2.0版本的pluto-taglib構建。 – Lyle 2012-08-17 17:18:40

0

我剛剛從一個同事這個問題的瓢...

顯然Portlet的2.0改變了這一現狀的網址,並宣佈他們默認情況下必須逃脫。 (以前沒有規則,似乎有幾個門戶實現了它們的轉義。)在大多數情況下,轉義URL都可以正常工作......但不是在每種情況下(例如,在JavaScript中使用時)。

對於這些情況,2.0版本的標籤提供escapeXml="false"屬性。這裏有一個例子:

<portlet:renderURL var="enterAlertUrl" escapeXml="false"> 
    <portlet:param name="action" value="enterAlert"/> 
    <portlet:param name="studentId" value="STUDENTID"/> 
    <portlet:param name="courseId" value="COURSEID"/> 
</portlet:renderURL> 

這的renderURL會給你一個URL字符串沒有參數之間 URL編碼與符號。

+0

非常感謝您遵循這條線現在要記住它給我帶來什麼問題;-) – 2012-07-10 15:26:52