2013-08-14 3 views
0

je suis tombé sur cette étrange situation-Spring MVC et Liferay - question la cartographie des ressources

Dans mon Jsp, je

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

Dans mon contrôleur j'ai une méthode

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

Au cours de exécution,

NumberFormatException est levée: impossible convertir string [] pour int 2013,2013

J'ai trouvé le soultion est de changer le portlet:param name de year à quelque chose d'autre, car il existe déjà une variable cachée nommée année, pour une raison quelconque le paramètre est transmis deux fois dans la demande et ne parvient pas à convertir la valeur.

Je voudrais savoir pourquoi le même nom de paramètre n'est pas acceptable si quelqu'un a plus de connaissances à ce sujet.

Merci

Répondre

1

Le problème est probablement <form:hidden path="year"/>. Avec ce code, vous mettez le paramètre année à la demande et avec <portlet:param name="year" value="${bean.year}" /> vous mettez un autre un paramètre année à la demande. Par conséquent, vous obtenez tableau de année paramètres dans votre contrôleur et il n'est pas possible de convertir en int.

Selon l'extrait de code de votre JSP, je suppose que <form:hidden path="year"/> n'est pas nécessaire à utiliser.

Questions connexes