Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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+;Spring:@ModelAttribute位于带有url参数的呈现方法中_Java_Spring_Liferay - Fatal编程技术网

Java Liferay+;Spring:@ModelAttribute位于带有url参数的呈现方法中

Java Liferay+;Spring:@ModelAttribute位于带有url参数的呈现方法中,java,spring,liferay,Java,Spring,Liferay,我想用过滤器和搜索结果创建portlet。过滤器必须在get方法中发送。 我正在使用spring注解@ModelAttribute作为过滤器。但筛选器中的所有属性都为null,因为liferay使用前缀作为url参数,如[PORTLET\u NAME]\u WAR\u[WAR\u NAME]。 我使用了actionRequest和SendedFilterbyPost方法,它可以工作,但我需要url中的参数 控制器中的方法: @RequestMapping public String view(@

我想用过滤器和搜索结果创建portlet。过滤器必须在get方法中发送。 我正在使用spring注解@ModelAttribute作为过滤器。但筛选器中的所有属性都为null,因为liferay使用前缀作为url参数,如[PORTLET\u NAME]\u WAR\u[WAR\u NAME]。 我使用了actionRequest和SendedFilterbyPost方法,它可以工作,但我需要url中的参数

控制器中的方法:

@RequestMapping
public String view(@ModelAttribute("filter") ProcessSearchFilter filter, RenderRequest request, Model model)
当参数名为_processSearch\u WAR\u portlets\u text=test时,过滤器属性中的text为test,但我只想在url中使用text参数

知道它是如何产生的吗?

如果url中有“text”参数,那么可以使用,而不是@modeldattribute

@RequestParam("text") String text
或者,如果参数变量名与参数名相同

@RequestParam String text
还要注意的是,如上所示,@RequestParam在默认情况下使参数成为必需的。如果不需要,请使用

@RequestParam(value = "text", required = false) String text

渲染方法还应具有@RenderMapping注释。

从Liferay 6.2有必要为视图页面上的字段声明名称空间前缀。如果您没有从提交的表单中收到任何值,请尝试如下设置前缀

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

或者更改portlet的设置,使其不需要这些设置。在
liferayportlet.xml
中,将所选portlet的requires namespaced parameters标记设置为false