2012-05-11 57 views
0

我寫了一個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?

回答

0

此代碼段將工作

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

對於其他人我已經上傳Sourceforge上portlet的幫助。鏈接爲test-expando-portlet

0

嘗試使用PortalUtil.getExpandoValue(...)

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

不幸的是,這並沒有工作,因爲它看起來。我檢查了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); –