我寫了一個liferay portlet來學習expando/custom屬性。我爲每個用戶都有一個名爲nick的自定義屬性。我有這種形式在JSP中在Liferay Portal 6.1中保存自定義屬性
<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>
當我嘗試使用
String nick = request.getParameter("nick");
或者
String nick = ParamUtil.get(request, "nick", "no nick given");
它給了我沒什麼可在此的processAction值。我檢查了這個文本框的名稱來作爲_testexpandoportlet_WAR_testexpandoportlet_ExpandoAttribute-暱稱 -
如何獲得此processAction?
不幸的是,這並沒有工作,因爲它看起來。我檢查了liferay源碼。 Liferay也採取了類似的方式,但修改了名稱。看到此代碼..字符串缺口=(字符串)PortalUtil.getExpandoValue(請求, \t \t \t \t \t 「ExpandoAttribute--」 + 「缺口」 + 「 - 」, \t \t \t \t \t ExpandoColumnConstants.STRING, \t \t \t \t \t ExpandoColumnConstants.PROPERTY_DISPLAY_TYPE_TEXT_BOX); –