如何在Liferay中获取JSP提交的值?

时间:2011-12-11 10:15:27

标签: liferay portlet liferay-6

我正在使用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 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

在门户网站/ portlet中,所有标识符都必须正确命名空间 - 您永远不会知道其他内容最终会出现在同一个html文档中。因此,表单控件应该是:

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

以便能够从请求中将参数检索为“user”。

如果在Liferay 6中使用AlloyUI标记库,则会自动为您完成大量此命名空间。

此外,您应该将门户网站操作URL添加为Udo Held建议:

<form action="<portlet:actionURL/>">

答案 2 :(得分: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'