Как я могу получить значения, отправленные из JSP в Liferay? - PullRequest
1 голос
/ 11 декабря 2011

Я использую версию Liferay Portal 6. Как я могу получить значения UserName и Password на одной странице?

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@page import="javax.portlet.RenderRequest"%>
<portlet:defineObjects />

This is the <b>Kiran</b> portlet.

<form>
  <p><b>UserName:</b> <input type="text" name="UserName" size="10"></p>
  <p><b>Password:</b> &nbsp;&nbsp;<input type="Password" name="Password" 
size="10"></p>
  <p><input type="submit" value="Submit" name="submit"><input type=
"reset" value="Reset" name="reset"></p><hr><hr>
</form>


<%

// here


%>

Ответы [ 3 ]

4 голосов
/ 11 декабря 2011

Я не уверен, правильно ли он отправляет значения, так как ваша форма не имеет цели и не ссылается на URL действия портлета.

В этом руководстве показано базовое использование и поиск параметров. Проверьте раздел портлетов JSP. Вы также должны иметь доступ к объекту запроса в вашем jsp.

Я бы не стал писать портлеты JSP. Это довольно устарело в наши дни. Отметьте Spring Portlet MVC или даже рассмотрите JSF.

1 голос
/ 12 декабря 2011

В портале / портлете все идентификаторы должны быть должным образом распределены по именам - вы никогда не узнаете, какой другой контент окажется в том же HTML-документе с вами. Таким образом, элемент управления формы должен выглядеть так:

<input type="text" name="<portlet:namespace/>user" .../>

, чтобы можно было получить параметр как «пользователь» из запроса.

Если в Liferay 6 вы используете теги AlloyUI, большая часть этого пространства имен выполняется автоматически.

Кроме того, вы должны добавить URL действия портлета, как предлагает Удо Хелд:

<form action="<portlet:actionURL/>">
0 голосов
/ 12 декабря 2011

Что вы пытаетесь получить?Вы хотите получить имя пользователя и пароль в каком-нибудь другом файле .java или .jsp?Или вы хотите получить имя пользователя и пароль после входа пользователя в систему?

Если вы пытаетесь получить сведения о пользователе, заданные на текущей странице jsp, в каком-либо другом .java или .jsp, то просто используйте PortletSession. Например: из jsp

PortletSession portletSession = actionRequest.getPortletSession();       
portletSession.setAttribute("liferayUserMap", liferayUserMap,PortletSession.APPLICATION_SCOPE);

из .java / .jsp

PortletSession portletSession = actionRequest.getPortletSession();
portletSession.getAttribute("liferayUserMap",PortletSession.APPLICATION_SCOPE);

Таким образом вы можете обмениваться данными междутакже разные файлы в разных портлетах.

Для случая 2: Если вы пытаетесь получить информацию о пользователе, просто выполните следующее:

ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
themeDisplay.getUser();

Я надеюсь, что вы будете следовать структурам портлета, покакодирование, иначе вышеупомянутый код не будет работать.Поскольку вам нужно указать на некоторый класс действий, в 'struts-config' и 'tile-def'

...