3

Je sais que cela pourrait être une question idiote et j'ai essayé googling mais je n'ai pas eu de réponse parfaite.Objet passé via jsp: jets de paramètres javax.el.PropertyNotFoundException: Propriété 'foo' introuvable sur le type java.lang.String

J'utilise le code suivant

<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}"> 
    <jsp:include page="html/tableContentsDisplayer.jsp"> 
     <jsp:param name="batchProgressMetrics" value="${aggregatedBatchProgressMetrics}" /> 
    </jsp:include> 
</c:forEach> 

et à l'intérieur html/tableContentsDisplayer.jsp, j'ai suit

<c:set var="aggregatedBatchProgressMetrics">${param.batchProgressMetrics}</c:set>  
    <tr> 
     <td class="tdcenter">${aggregatedBatchProgressMetrics["clientId"]}</td>  
     <td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}</td> 
     <td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}</td> 
    </tr> 

aggregatedBatchProgressMetrics est ce que je reçois de c: forEach est un objet de type com. xyz.AggregatedBatchProgressMetrics et non une chaîne, à partir de l'exception, il traite cela comme un objet String. J'ai la méthode getClientId dans le bean. Aussi, si je place le contenu du fichier jsp inclus tel quel (sans les directives et c: set tag) cela fonctionne parfaitement. Y at-il un moyen de passer un objet en utilisant jsp: param tag et à la fin de la réception je l'obtiens comme un objet?

Est-il possible d'utiliser jstl ou je devrais utiliser des scriptlets/expression pour le même?

Merci, Almas

+0

forme s'il vous plaît votre code correctement –

+0

S'il vous plaît ne pas xml-échapper à vos tags. Cela rend le code illisible. – BalusC

Répondre

6

paramètres de la requête HTTP sont traitées comme des chaînes. Avec jsp:param, il est essentiellement converti en chaîne par String#valueOf(). Plutôt le stocker comme objet dans la portée de la demande avec l'aide de <c:set>.

<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}"> 
    <c:set var="batchProgressMetrics" value="${aggregatedBatchProgressMetrics}" scope="request" /> 
    <jsp:include page="html/tableContentsDisplayer.jsp" /> 
</c:forEach> 

<tr> 
    <td class="tdcenter">${batchProgressMetrics["clientId"]}</td>  
    <td class="tdcenter">${batchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}</td> 
    <td class="tdcenter">${batchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}</td> 
</tr> 
+0

Merci beaucoup ... qui a fonctionné .. – Almas

Questions connexes