0

expando/custom 属性を学習するために liferay ポートレットを作成しました。すべてのユーザーに 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で取得するにはどうすればよいですか?

4

2 に答える 2

0

このコードセクションは機能します

String nick = "";
nick = (String) PortalUtil.getExpandoValue(request,
                "ExpandoAttribute--" + "nick" + "--",
                ExpandoColumnConstants.STRING, ExpandoColumnConstants.PROPERTY_DISPLAY_TYPE_TEXT_BOX);

他の人の助けを借りて、私はSourceforgeにポートレットをアップロードしました。test-expando-portletのリンク

于 2012-05-12T06:26:30.040 に答える
0

使ってみてPortalUtil.getExpandoValue(...)

  String expandoValue = (String)PortalUtil.getExpandoValue(request, "nick", ExpandoColumnConstants.STRING, ExpandoColumnConstants.PROPERTY_DISPLAY_TYPE_TEXT_BOX);
于 2012-05-11T12:40:29.860 に答える