.toUpperCase

3 respostas
F

Olá.

Gostaria de saber se existe algum jeito de transformar de uma vez (sem ter q pegar um por um) todos os campos String de uma jsp para letras maiúsculas (upperCase) ?
Tipow, antes msm de jogar no banco… Na própria página ou mesmo na classe action da página.
Ou então comm algum javaScript, na propriedade do textfield msm…

Desde já, agradeço.

Walter

3 Respostas

P

consulta a api em
http://java.sun.com/j2se/1.5.0/docs/api/index.html
mais especificamente java.lang.string
há um método chamado toUpperCase()…

P

Acho que o Walter conhece String.toUpperCase() ;) Se interpretei corretamente, a pergunta dele era como transformar todos os parâmetros de uma requisição para maiúsculas, de uma vez só.

A solução mais prática para isso involve um filtro de servlets: Basta escrever um filtro que empacota o ServletRequest para sempre retornar os parâmetros de requisição em maiúsculas, e instalar esse filtro na frente de sua aplicação. A implementação do filtro seria algo assim:

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestWrapper;
import javax.servlet.ServletResponse;

/**
 * Filtro para retornar todos os parametros de requisição em maiúsculas. A
 * transformação só é feita se os parâmetros forem obtidos através do método
 * {@link ServletRequest#getParameter(String)}. </p> TODO: empacotar os métodos
 * {@link ServletRequest#getParameterMap()} e {@link ServletRequest#getParameterValues(String)}
 * para também retornar sempre os valores em maiúsculas.
 *
 * @author Marcus Brito <[email removido]>
 */
public class UpperCaseFilter implements Filter
{
    public void init(FilterConfig filterConfig) throws ServletException
    {
        // Nao faz nada
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException
    {
        chain.doFilter(new UpperCaseRequestWrapper(request), response);
    }

    public void destroy()
    {
        // Nao faz nada
    }

    private static class UpperCaseRequestWrapper extends ServletRequestWrapper
    {
        public UpperCaseRequestWrapper(ServletRequest request)
        {
            super(request);
        }

        public String getParameter(String s)
        {
            String param = getRequest().getParameter(s);
            return param != null ? param.toUpperCase() : param;
        }
    }
}

E como instalar o filtro fica como exercício para o leitor, mas aqui tem uma boa explicação rasteira sobre filtros.

--
Marcus Brito
Consultor J2EE
mbrito <arroba> gmail <ponto> com

G

:arrow: Olá!
Na classe String há o método toUpperCase(), ele passa toda a tua String para letras maiúsculas e há o caso contrário que deixa todas minúsculas
toLowerCase().

Criado 27 de setembro de 2004
Ultima resposta 27 de set. de 2004
Respostas 3
Participantes 4