2010-10-19 59 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