Olá pessoal estou postando o código aqui, tem um método de uma Action chamada Edit Book, e tem o código para popular o componente select do html. O fato é o seguinte, quando vou editar a um livro para alterá-lo preciso posicionar em um elemento em específico da Lista suspensa, no entanto do jeito que estou fazendo estou criando um novo elemento option para posicionar na lista no local desejado no que está acarrentando em colocar na lista suspensa um elemento em repetido. Gostaria de saber como posicionar na lista sem precisar criar um novo element. Obrigado a todos desde de já.
<html:select property="conservacaoId">
<logic:present name="cons">
<logic:iterate id="conserv" name="cons">
<option value='<bean:write name="conserv" property="id"/>'>
<bean:write name="conserv" property="descricao" />
</option>
</logic:iterate>
</logic:present>
<logic:present name="conservacao">
<option selected="selected" value='<bean:write name="conservacao" property="id"/>'>
<bean:write name="conservacao" property="descricao" />
</option>
</logic:present>
</html:select>
===============================================
/**
* Method editBook
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward editBook(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
BookEditForm bookEditForm = (BookEditForm)form;
Integer id = Integer.valueOf(request.getParameter("id"));
Collection<Conservacao> cons = new ArrayList<Conservacao>();
LibraryManager libraryManager = new LibraryManager();
bookEditForm.setBook(libraryManager.getBookByPrimaryKey(id));
cons = libraryManager.getAllConservacao();
if (bookEditForm.getBook().getConservacao() != null){
Integer idConservacao= Integer.valueOf(bookEditForm.getBook().getConservacao().getId());
request.setAttribute("conservacao", libraryManager.getConservacaoByPrimaryKey(idConservacao));
}
request.setAttribute("cons", cons);
return mapping.findForward("showEdit");
}