0

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

在我的 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 被抛出:无法将字符串 [] 转换为 int 2013,2013

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

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

谢谢

4

1 回答 1

1

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

根据你的 JSP 的代码片段,我猜<form:hidden path="year"/>是没有必要使用的。

于 2013-08-18T10:02:26.823 回答