Como codificar um parâmetro com um URL em suportes?
Pergunta
Uma lista de livros é exibida na página. Quando um usuário clica em um livro, sua página de detalhes é aberta. Agora, o problema é que preciso codificar o ID de cada livro com o URL da página de detalhes.
O link para a página de detalhes é /loadDetailform.do. Se um livro tiver id = 23, o link deve aparecer como /loadDetailForm.do?id=23.
Estou colando código aqui:
<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>
Obrigado
Solução
Você pode especificar um mapa dos parâmetros que a tag Struts anexará ao URL.
Ver http://struts.apache.org/1.2.x/userguide/struts-html.html#link
Olhe para a paramId
, paramName
e paramProperty
atributos.
<html:link action="/loadDetailForm"
styleClass="btn_blue"
paramId="id"
paramName="book"
paramProperty="id">
<bean:write name="book" property="title"/>
</html:link>
Uma alternativa seria usar a biblioteca de tags JSTL
<c:url value="expression" context="expression"
var="name" scope="scope">
<c:param name="param1" value="${thing.id}"/>
...
</c:url>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow