我已按照this guide的所有步骤在Liferay中添加自定义字段,并且能够获取标签和文本框以在帐户详细信息页面(html\portlet\users_admin\user\details.jsp
)上输入数据。
我的代码是:
<div class="exp-ctrl-holder">
<liferay-ui:custom-attribute
className="<%= User.class.getName() %>"
classPK="<%= 0 %>"
editable="<%= true %>"
label="<%= true %>"
name="Bio"
/>
</div>
问题是,当我保存它时,不会填充页面上的字段。
当我在“个人简介:输入”中写任何东西,然后单击“保存”时,页面加载,然后我写的内容被清除。为什么?
少了什么东西?
谢谢,
最佳答案
这是不正确的:classPK="<%= 0 %>"
。classPK
基本上是用户的主键,即userId
。因此,由于尚未创建用户,因此添加用户classPK
时将为零,但是当您保存或更新用户时,用户将具有classPK,并且要保存的自定义字段Bio
将与userId
。
相反,您需要使用
`classPK="<%= (selUser != null) ? selUser.getUserId() : 0 %>"
因此,当您保存并更新用户时,将填充“用户”自定义字段。