Mostrar ordenados alfabéticamente datos de un bean

Con este código muestro en un select una lista de empresas que tengo en sesión, pero... ¿cómo consigo que sean mostradas por orden alfabético?
<tr>
<td width="20%" height="50"> </td>
<td width="20%" height="50"><label>Empresa</label></td>
<td width="60%" height="50">
<logic:present name="carteraContainer">
<html:select property="emprVent">
<html:optionsCollection name="carteraContainer" property="empresasCartera.empresas" value="nombre" label="nombre"/>
</html:select>
</logic:present>
</td>
</tr>

1 Respuesta

Respuesta
1
Pues lo más sencillo es que las ordenes en el objeto o al hacer el acceso a la base de datos, así descargas trabajo del navegador y que se encargue de ello el servidor en donde tienes la aplicación, además, puedes controlar el método de ordenamiento mejor o introducir nuevos criterios tuyos.
Respecto a ordenarlas en el acceso a la base de datos, si te refieres a algo como ORDER BY, no me sirve porque obtengo las empresas, las guardo en sesión, y una vez ahí y hasta el cierre de la sesión se pueden añadir nuevas, por lo que se van al final, que es lo que me sucede ahora mismo, y ya aparecen desordenadas en el select.
Respecto a ordenarlas en el objeto, sí me parece buena solución, aunque yo esperaba una forma de ordenarlas, si la hay, a través de un atributo de html:optionsCollection o algo parecido. ¿No hay algo así? ¿Aún habiéndolo sigues pensando que es mejor en el objeto? En ese caso estaría bien que me hicieses el favor de proporcionarme algún método que ordene alfabéticamente, porque digo yo que algo así habrá, ¿no?
Muchas gracias
Pues para mi es la mejor opción, crear un objeto collection y hacer una ordenación, es más, si tu defines tu método compare en ese objeto, al insertar, se te irían insertando en orden, con lo que no tendrías que preocuparte de llamar al método de ordenación sino que automáticamente al meter nuevas empresas, éstas se ordenarían solas.
Con respecto a un método en html:option, ahora mismo no me se ningún método que ordena, lo siento

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas