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+