在Liferay Portal 6.1中保存自定义属性

时间:2012-05-11 10:37:52

标签: liferay

我编写了一个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中获取此内容?

2 个答案:

答案 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

的链接