Java 如何通过liferay中的portlet conf选项卡修改属性文件?
我有一个自定义portlet,它使用我在portlet-conf.properties中编写的两个参数 所以,若我愿意,我想通过在portlet的配置菜单中的设置选项卡中输入两个新值来更改它们 选项卡设置: 我有我的portlet的控制器和jsp,还有一个conf.jsp和ConfigurationActionImpl,它为选项卡实现呈现返回conf.jsp和processAction空 如何为具有2个输入文本的jsp和configAction编码,这些文本可以修改portlet-conf.properties中的两个参数 当我们点击submit按钮时,我想更改我的属性文件中变量的值。 如果可能,在输入框中显示默认值和实际值 问候。Java 如何通过liferay中的portlet conf选项卡修改属性文件?,java,jsp,liferay,portlet,Java,Jsp,Liferay,Portlet,我有一个自定义portlet,它使用我在portlet-conf.properties中编写的两个参数 所以,若我愿意,我想通过在portlet的配置菜单中的设置选项卡中输入两个新值来更改它们 选项卡设置: 我有我的portlet的控制器和jsp,还有一个conf.jsp和ConfigurationActionImpl,它为选项卡实现呈现返回conf.jsp和processAction空 如何为具有2个输入文本的jsp和configAction编码,这些文本可以修改portlet-conf.pr
谢谢我认为您不能像那样覆盖属性值。属性文件应该用作portlet配置 您必须使用
PortletPreferences
进行相同的操作
您可以做的是在conf.jsp
中,创建2个输入框和提交按钮。单击提交按钮时,将调用ConfigurationActionImpl
的processAction()。在此方法中,获取PortletPreferences
并将值保存到其中
属性文件将用作首选项的默认值。因此,流程将是
1) 当用户第一次访问portlet配置时,您将在portlet首选项中获得空值,因此从属性文件加载
2) 用户可以更改值,当他/她单击提交按钮时,将其保存到PortletPreferences
3) 下次,从PortletPreferences
获取值
希望这会有所帮助。确定不能修改属性文件中变量的值吗?因为,我的portlet使用“@Value(${mss.portlet.myportlet.config.url}”)来获取属性文件中的值。我们不能针对它们并修改它们?这一点不确定,但如果您查看liferay内置portlet,那么portlet的conf总是使用portletPreferences,因为它存储在数据库中,当您发布到live或发布到remote时将导出。您的方法肯定有效,我将对其进行测试,也许有人知道我是否可以随心所欲地改变房子。谢谢,请问如何在portletcontroller中获取portletPreferences?config.jsp和configionimpl工作正常,但现在,我如何获得将在portletcontroller中使用的portletpreferences?谢谢。嗨,Jean,您将从portletRequest中获得portlet首选项。请使用相同的getPreferences()方法。