Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过liferay中的portlet conf选项卡修改属性文件?_Java_Jsp_Liferay_Portlet - Fatal编程技术网

Java 如何通过liferay中的portlet conf选项卡修改属性文件?

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,它使用我在portlet-conf.properties中编写的两个参数

所以,若我愿意,我想通过在portlet的配置菜单中的设置选项卡中输入两个新值来更改它们

选项卡设置:

我有我的portlet的控制器和jsp,还有一个conf.jsp和ConfigurationActionImpl,它为选项卡实现呈现返回conf.jsp和processAction空

如何为具有2个输入文本的jsp和configAction编码,这些文本可以修改portlet-conf.properties中的两个参数

当我们点击submit按钮时,我想更改我的属性文件中变量的值。 如果可能,在输入框中显示默认值和实际值

问候。
谢谢

我认为您不能像那样覆盖属性值。属性文件应该用作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()方法。