портал: actionURL Spring MVC Portlet - PullRequest
       7

портал: actionURL Spring MVC Portlet

2 голосов
/ 19 октября 2010

Я пытаюсь создать actionUrl, используя следующий код

<portlet:actionURL var="actionUrl"><portlet:param name='action' value='viewModules' /></portlet: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>

Если я удалю код и вставлю в браузер, это будет работать

Я добавил portlet.url.escape.xml = ложь для portal-ext.properties, но недоступно

Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 07 июля 2012

Я только что получил сообщение по этому вопросу от коллеги ...

Очевидно, что Portlet 2.0 изменил статус-кво для URL-адресов и объявил, что по умолчанию они должны быть экранированы.(Раньше правил не было, и, кажется, некоторые порталы реализовали их без экранирования.) Экранированные 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 голосов
/ 01 декабря 2010

В форме действия я использую:

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