我已经构建了一个在Liferay 6.2上运行的MVCPortlet。 它使用可正常工作的PortletPReferences页面,通过右上角的配置菜单设置/获取字符串首选项参数。通过PortletPreferences(Liferay6.2)处理字符串[]
现在我需要在那里存储一个String []而不是一个普通的String。 这似乎是可能的,你可以存储,并通过
portletPreferences.getValues("paramName", StringArrayData);
我希望将数据从一个形式存储多选择得到一些的String []。
我假设我需要调用我的派生控制器(从DefaultConfigurationAction派生),并调用有portletPreferences.setValues(String, String[]);
如果是这样,在中间,我将neeed的配置JSP到String []数组传递到控制器通过一个
request.setAttribute(String, String[]);
你认为应用程序可以在理论上这样工作吗?
如果是这样,这里是试图使其工作时,我遇到的问题:
以任何理由,在我的配置JSP,
request.setAttribute("paramName", myStringArray);
不起作用 - >
actionRequest.getAttribute("paramName")
在我的控制器中检索到null 这是非常令人惊讶的,因为这通常是有效的。 也许config.jsp的工作方式与标准jsps有点不同。
然后,我怎样才能把我的多行html选择到一个String []属性? 我想要在表单提交时调用JS函数。 这个JS函数会根据select ID(easy) 生成StringArray,然后调用actionURL(更复杂)。 这可能吗?
thx提前。
@奥拉夫·科克:是的我看到这些功能,但我不敢肯定我怎么中号应该使用它们。 我拿它setValues需要在控制器中调用请求ajax调用。但它看起来像我们在其他jsps中做的那样,我们无法在设置jsp中进行ajax调用。 我只是从另一个jsp复制一些工作的ajax代码,我将它粘贴到config.jsp(当我们检查portlet配置时弹出),并且ajax不会重定向回控制器。任何想法为什么? –