java - Liferay+ Spring : @ModelAttribute in render method with url parameters

标签 java spring liferay

我想制作带有过滤器和搜索结果的 portlet。过滤器必须在 get 方法中发送。 我使用 spring 注释 @ModelAttribute 作为过滤器。但是filter中的所有属性都是null,因为liferay使用url参数的前缀,例如_[PORTLET_NAME]_WAR_[WAR_NAME]。 我使用了 actionRequest 并通过 post 方法发送了过滤器,它可以工作,但我需要 url 中的参数。

Controller 中的方法:

@RequestMapping
public String view(@ModelAttribute("filter") ProcessSearchFilter filter, RenderRequest request, Model model)

当参数名称为 _processSearch_WAR_portlets_text=test 时,过滤器属性中的文本为 test,但我只想在 url 中使用文本参数。

知道它是如何制作的吗?

最佳答案

Liferay 6.2开始,有必要为 View 页面上的字段声明 namespace 前缀。如果您没有从提交的表单中收到任何值,请尝试像这样设置前缀

<input type="text" name="<portlet:namespace />inputTextName" />

或者更改 portlet 的设置,使其不再需要它们。在 liferay-portlet.xml 中,将所选 portlet 的 requires-namespaced-parameters 标记设置为 false

关于java - Liferay+ Spring : @ModelAttribute in render method with url parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427082/

相关文章:

java - HttpURLConnection.getRequestProperties() 抛出 IllegalStateException : "Already connected"

liferay - Liferay 中的管理 portlet(例如 Wiki 管理、留言板管理)

java - 我如何在 portlet 中获得 Liferay 的 Hibernate Session 实现?

java - 无法将 Java 中提供程序的标签名称发送到 Pact Broker

Liferay market-portlet 在 6.2 版本中未正确部署?

java - 是否可以检测来自另一个项目的实体?

java - 地址长度非法

java - StringBuilder:ArrayIndexOutOfBoundsException

java - 如何为 UniqueId 编写 Java 序列生成器,它将在每天午夜自动重置为 '1'(基本序列号)

spring - 如何将即时开始、结束日期作为@RequestParam 传递