1

我正在使用 Liferay Portal 6 版本。如何在同一页面中获取用户名和密码值?

<%@ 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


%>
4

3 回答 3

4

我不确定它是否正确提交值,因为您的表单没有目标并且没有引用 portlet 操作 url。

教程展示了一些基本用法和参数检索。检查 JSP portlet 部分。您也应该能够在您的 jsp 中访问请求对象。

我不会开始编写 JSP portlet。它现在已经过时了。检查Spring Portlet MVC甚至考虑 JSF。

于 2011-12-11T10:33:03.147 回答
1

在门户/portlet 中,所有标识符都必须正确命名空间——您永远不知道与您在同一个 html 文档中的其他内容是什么。因此,表单控件应该改为:

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

为了能够从请求中检索参数作为“用户”。

如果在 Liferay 6 中使用 AlloyUI 标签库,很多命名空间会自动为您完成。

此外,您应该按照 Udo Held 的建议添加 portlet 操作 URL:

<form action="<portlet:actionURL/>">
于 2011-12-12T11:27:49.070 回答
0

你想得到什么?您想在其他一些.java 文件或.jsp 文件中获取用户名和密码吗?或者您想在用户登录后获取用户名和密码?

如果您试图在其他 .java 或 .jsp 中获取当前 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);

通过这样做,您也可以在不同 portlet 中的不同文件之间共享数据。

对于案例 2:如果您尝试获取用户详细信息,只需执行以下操作:

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

我希望您在编码时遵循 portlet 结构,否则上面提到的代码将不起作用。由于您必须在“struts-config”“tiles-def”中指向一些动作类

于 2011-12-12T09:38:23.493 回答