Daí gurizada.
Não consegui decidir se o melhor era esse grupo web, ou se era o java avançado, mas dane-se, eis a dúvida:
Tô fazendo um JSP pra generalizar a construção de botões pra janelas.
A minha dúvida é se eu eu devo usar um jsp com tudo definido e passar quais botões eu quero via parâmetro, ou se eu passo uma lista de parâmetros e ponho o jsp pra montar tudo.
Pra ficar mais claro, vou por os dois exemplos abaixo:
Exemplo 1: Passando lista por parâmetro
// Código da página que importa o JSP:
<c:import url="/buttonList.athena">
<c:param name="buttons" value="save,cancel,edit" />
</c:import>
// Código do JSP que gera os botões:
<c:forEach items="${param.buttons}" var="buttonName">
<img
src="<f:message key="bttn.${buttonName}.path" />"
title="<f:message key="bttn.${buttonName}.title" />"
alt="<f:message key="bttn.${buttonName}.title" />"
onclick="<f:message key="bttn.${buttonName}.action" />"
/>
</c:forEach>
Exemplo 2: Passando botões um a um
// Código da página que importa o JSP:
<c:import url="/buttonList.athena">
<c:param name="saveButton" value="true" />
<c:param name="editButton" value="true" />
<c:param name="cancelButton" value="true" />
</c:import>
// Código do JSP que gera os botões:
<c:choose>
<c:when test="${param.saveButton}" >
<img
src="<f:message key="bttn.saveButton.path" />"
title="<f:message key="bttn.saveButton.title" />"
alt="<f:message key="bttn.saveButton.title" />"
onclick="getController().save()"
/>
</c:when>
<c:when test="${param.editButton}" >
<img
src="<f:message key="bttn.editButton.path" />"
title="<f:message key="bttn.editButton.title" />"
alt="<f:message key="bttn.editButton.title" />"
onclick="getController().edit()"
/>
</c:when>
<c:when test="${param.cancelButton}" >
<img
src="<f:message key="bttn.cancelButton.path" />"
title="<f:message key="bttn.cancelButton.title" />"
alt="<f:message key="bttn.cancelButton.title" />"
onclick="getController().cancel()"
/>
</c:when>
</c:choose>
A idéia aqui é encontrar a melhor maneira.
Não precisa comentar sobre melhorias no código como o uso de tiles ou coisas do tipo. Sei que dá pra usar temas pra usar um arquivo de imagem único e deixar o nome fixo no código, bastando só substituir o arquivo, mas no stress, fica pra outra hora. Também não precisa dizer que JSF faz sei lá o que, Struts bla bla bla, Velocity, e o caralho a quatro hehehe
Minha dúvida é: Qual das duas é mais aconselhada ? E por que ? A primeira deixa o código mais limpo, mas envolve loops que me parecem estranhos e até desnecessários, bem como a necessidade de chaves extras.
E então? Sugestões?
[]s