我只能在用戶管理員手動編輯之前編輯自定義字段。登錄後編輯自定義屬性
我的代碼有什麼問題,我該怎麼做才能解決這個問題?
的確如此,我試圖在門戶中登錄時爲用戶自定義屬性賦值。而且我無法在指定的條件下獲得ExpandoColumn。
問題是ExpandoValue爲null。
public class LoginAction extends Action {
public void run(HttpServletRequest req, HttpServletResponse res) {
User currentUser;
try {
currentUser = PortalUtil.getUser(req);
long userId = PrincipalThreadLocal.getUserId();
long companyId = currentUser.getCompanyId();
long groupId = GroupLocalServiceUtil.getGroup(companyId, "Guest").getGroupId();
/* Get de CustomField Segmentation */
ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getDefaultTable(companyId, User.class.getName());
ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(companyId, User.class.getName(), expandoTable.getName(), "Segmentation");
if (expandoColumn != null) {
ExpandoValue expandoValue = ExpandoValueLocalServiceUtil.getValue(expandoTable.getTableId(), expandoColumn.getColumnId(), userId);
if (expandoValue != null) {
expandoValue.setData(finalsegment);
ExpandoValueLocalServiceUtil.updateExpandoValue(expandoValue);
}
}
}
摘要:我的問題是
ExpandoValue expandoValue = ExpandoValueLocalServiceUtil.getValue(expandoTable.getTableId(), expandoColumn.getColumnId(), classPK);
是空當我訪問自定義屬性的價值。如果我手工編輯這個customattribute,然後執行相同的代碼,它的工作原理!我不知道爲什麼,我不知道如何解決這個問題。
我更新的問題:我的問題是,「ExpandoValue expandoValue = ExpandoValueLocalServiceUtil.getValue(expandoTable.getTableId(),expandoColumn.getColumnId(),classPK);「當我訪問自定義屬性的值時爲空。如果我手工編輯這個customattribute,然後嘗試相同的功能! – user1592470
看到我的回答更新 –
我試過這個解決方案!問題是我無法找到或生成一個免費的valueId。你知道我怎麼能找到一個?而且..我已經爲expando值指定了一個默認值而沒有成功。謝謝。 – user1592470