我正在使用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> <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
%>
答案 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'
中