Spring MVC和Liferay - 资源映射问题

时间:2013-08-14 01:22:54

标签: java spring-mvc liferay spring-portlet-mvc

我遇到了这种奇怪的情况 -

在我的Jsp中,我有

<form:hidden path="year"/>
<portlet:resourceURL id="image" var="imageURL">
   <portlet:param name="year" value="${bean.year}" />
</portlet:resourceURL>       
<img src="${imageURL}" alt="Image" />

在我的控制器中我有一个方法

@ResourceMapping("image")
public void getImage(ResourceRequest request, ResourceResponse response, 
  @RequestParam("year") final int year){
  //serve resource here
}

执行期间,

  

抛出NumberFormatException:无法将string []转换为int   2013,2013

我发现灵魂就是将portlet:param nameyear更改为其他内容,因为已经有一个名为year的隐藏变量,由于某种原因,参数在请求中被传递了两次并且无法转换价值。

我想知道为什么如果有人对此有更多的了解,为什么不能接受相同的参数名称。

由于

1 个答案:

答案 0 :(得分:1)

问题可能出在<form:hidden path="year"/>。使用该代码,您可以将参数 year 添加到请求中,并使用<portlet:param name="year" value="${bean.year}" />将另一个参数 year 添加到请求中。因此,您在控制器中获得参数的数组,并且无法转换为int。

根据JSP的代码片段,我猜不需要使用<form:hidden path="year"/>