我遇到了这种奇怪的情况 -
在我的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 name
从year
更改为其他内容,因为已经有一个名为year的隐藏变量,由于某种原因,参数在请求中被传递了两次并且无法转换价值。
我想知道为什么如果有人对此有更多的了解,为什么不能接受相同的参数名称。
由于
答案 0 :(得分:1)
问题可能出在<form:hidden path="year"/>
。使用该代码,您可以将参数 year 添加到请求中,并使用<portlet:param name="year" value="${bean.year}" />
将另一个参数 year 添加到请求中。因此,您在控制器中获得年参数的数组,并且无法转换为int。
根据JSP的代码片段,我猜不需要使用<form:hidden path="year"/>
。