Criação de Tags

Pessoal

No livro “Head First JSP & Servlets”, no capítulo 10, sobre Custom Tags, tem um exemplo de criação de uma tag que gera um elemento “select” em um html (inicia na página 542).

Neste exemplo, todo o código html é escrito através de java, desta forma:

...

PageContext pageContext = (PageContext) getJspContext();
JspWriter out = pageContext.getOut();
// Start the HTML <select> tag with HTML-specifc attributes
out.print("<select "); 

...

E assim, toda a criação do componente é escrita desta forma.

Apesar de atingir o objetivo, que é criar um componente “select” no html, através de uma tag, achei isto um pouco bagunçado, misturando Java com HTML…

Não existe alguma forma mais organizada de se fazer isto, separando o Java do HTML?

Obrigado

Você poderia usar algo como o Velocity para poder fazer essa tal separação. Mas em uma taglib que requeira pouca customização talvez seja suficiente deixar “chumbado” o html. É um bocadinho feio, eu concordo; o tal exemplo foi feito assim por razões didáticas (na prática, como as coisas são mais complicadas, você precisa de soluções mais complicadas, tratar todas as exceções etc.)