我编写了一个liferay portlet来学习expando / custom属性。我为每个用户都有一个名为nick的自定义属性。我在jsp中有这个表单
<form action='<portlet:actionURL></portlet:actionURL>' method="post">
<liferay-ui:custom-attribute className="<%=User.class.getName()%>"
classPK="<%=user.getPrimaryKey()%>" name="nick" editable="true" label="Nick">
</liferay-ui:custom-attribute>
<input type="submit" value="Save" />
</form>
当我尝试使用
在processAction中获取此值时String nick = request.getParameter("nick");
或者
String nick = ParamUtil.get(request, "nick", "no nick given");
它什么都没给我。我检查了这个文本框的名称来自_testexpandoportlet_WAR_testexpandoportlet_ExpandoAttribute - nick--
如何在processAction中获取此内容?
答案 0 :(得分:0)
尝试使用PortalUtil.getExpandoValue(...)
String expandoValue = (String)PortalUtil.getExpandoValue(request, "nick", ExpandoColumnConstants.STRING, ExpandoColumnConstants.PROPERTY_DISPLAY_TYPE_TEXT_BOX);
答案 1 :(得分:0)
此代码部分将起作用
String nick = "";
nick = (String) PortalUtil.getExpandoValue(request,
"ExpandoAttribute--" + "nick" + "--",
ExpandoColumnConstants.STRING, ExpandoColumnConstants.PROPERTY_DISPLAY_TYPE_TEXT_BOX);
为了其他人的帮助,我在Sourceforge上传了portlet。 test-expando-portlet
的链接