2009-09-07 14 views
1

Une liste de livres est affichée sur la page. Lorsqu'un utilisateur clique sur un livre, sa page de détail est ouverte. Maintenant, le problème est que j'ai besoin d'encoder l'ID de chaque livre avec l'URL de la page de détails.Comment encoder un paramètre avec une URL dans struts?

Le lien vers la page de détails est /loadDetailForm.do. Si un livre a id = 23, le lien devrait apparaître sous la forme /loadDetailForm.do?id=23.

Je coller le code ici:

<logic:notEmpty name="BrowseForm" property="books"> 
       <logic:iterate id="book" property="books" name="BrowseForm" type="com.nms.bks.app1.domain.Book"> 
         <p><html:link action="/loadDetailForm" styleClass="btn_blue"><bean:write name="book" property="title"/></html:link></p> 
       </logic:iterate> 
      </logic:notEmpty> 

Merci

Répondre

2

Vous pouvez spécifier une carte de paramètres qui la balise entretoises ajoutera à l'URL.

Voir http://struts.apache.org/1.2.x/userGuide/struts-html.html#link

Regardez les paramId, paramName et paramProperty attributs.

<html:link action="/loadDetailForm" 
     styleClass="btn_blue" 
     paramId="id" 
     paramName="book" 
     paramProperty="id"> 
      <bean:write name="book" property="title"/> 
</html:link> 

Une alternative serait d'utiliser la bibliothèque de balises JSTL

<c:url value="expression" context="expression" 
    var="name" scope="scope"> 
    <c:param name="param1" value="${thing.id}"/> 
    ... 
</c:url> 

http://www.ibm.com/developerworks/java/library/j-jstl0318/

+0

acceptés sans upvotes ... – pjp