JSP - Geracao de selecMenu, opnioes sobre como esta feito

ola pessoal
tive que criar um selecMenu, queria a opnicao de voces sobre ele, e possiveis problemas que posso ter.
obs.:
1-nao considerem frameWork
2-nao considerem o uso de funcoes java scripts, pois ela sao adicionadas via java script, sem misturar os códigos com o HTML

meu gerador de selecMenu

package br.com.krusst.util.web;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class InputForm {
	public static void criaSelecMenu(	javax.servlet.jsp.JspWriter out,
									String nomeCampo, 
									Map<String,String> lista, 
									String selectedValor,
									String nomeEstilo){ 
		  try{ 
			  //se nomeEstilo estiver preenchido entao adiciono ele como classe de estilo
			  if(nomeEstilo.length()>0){nomeEstilo = " class=\"" + nomeEstilo + "\" ";}
			  //pego os valores da chave da lista
			  Set chaves = lista.keySet();
			  Iterator i = chaves.iterator();
			  //escrevo o inicio do selecMenu com o NAME e ID
			  out.println("<select name=\"" + nomeCampo + "\" id=\"" + nomeCampo + "\""+ nomeEstilo +">");	  		

			  //valor da chave,ID do select
			  String chave = "";
			  //valor da descricao do select
			  String descricao = "";
			  //marca o item como selecionado
			  String selectedStatus = "";
			    	
	  			//loop varrendo todos os valores de i		    	
			    while(i.hasNext()){
			    	//pego o valor da chave atual dentro do loop
			    	chave = i.next().toString();
			    	//pego o valor da descricao da chage
			    	descricao = lista.get(chave).toString();
			    	
			    	//verifico se o selectedValor é igual ao valor da chave(ID), se for, marco como selecionado, do cantrario, o desmarco
				    if(selectedValor == chave){selectedStatus = " selected ";}else{selectedStatus = "";}
				    
				    //escrevo o selectItem			    
			    	out.println("	<option value=\""+chave+"\"" + selectedStatus + ">"+descricao+"|"+"</option>");		    	
			    	
			    }
	  		//escrevo o fim do selecMenu
		    out.println("<\\select>");

		  }catch(java.io.IOException e1){ 
		   System.out.println(e1); 
		   } 
		} 
}

pagina de teste

<%@ page language="java"%> 
<%@ page import="java.util.*"%>
<%@page import="br.com.krusst.util.web.InputForm;"%>
<html> 
<head> 
<title>Construção dinâmica de menus de seleção</title> 
</head> 
	<body>
		<%
			Map<String,String> est = new HashMap<String,String>();
			est.put("3","valor2");
			est.put("2","valor3");
			est.put("1","valor4");
			est.put("4","valor1");
	
			
			InputForm.criaSelecMenu(out,"exemploSelecMenu",est,"2","sele"); 
		%> 
	</body> 
</html>

algumas ajudas:
1-caso eu precise implementar ordenacao, como eu faria?
porem,a ordenacao teria que ser pela descricao da lista

2-na parte javax.servlet.jsp.JspWriter out,, como eu faria para esta parte ficar interna dentro do metodo, como eu peguei esse codigo e alterei de acordo com a minha necessidade, nao consegui jogar esta parte para dentro da metodo para que eu nao precise passar por parametro

3-caso eu faco uma classe acessar o metodo “InputForm.criaSelecMenu” para cada classe ter a seu selecMenu que necessitam, isso seria quebra de padrao no sentido de eu ter uma classe misturada com JSP?

acho que é so por enqto

abs
T+