Problema com request.getParameter("")

15 respostas
fabio_gauna

Pessoal estou começando no Java e estou com a seguinte dúvida.

String CodLanc = request.getParameter("tabid"); String lancamento = new String(CodLanc); System.out.println(lancamento);

Por que “lancamento” não consegue receber o valor de “CodLanc”?

15 Respostas

drsmachado

Mas por que isso?
Faz direto

String CodLanc = request.getParameter("tabid");  
System.out.println(CodLanc);

Outra coisa, a nomenclatura para variáveis diz que ele precisa começar com letra minúscula.

fabio_gauna

porque o “CodLanc” recebe por exemplo CodLanc=“1378416,1263519,1239015,1244291”. E eu preciso quebrar esses números por vŕgula

fabio_gauna
Meu código
package CmdExec;

import java.sql.*;
import javax.servlet.http.*;
import SubMacroUtils.Erro;
import SubMacroUtils.FormatDate;
import SubMacroUtils.Geral;
import java.util.StringTokenizer;

/**
 * Unigates
 * @author DTI - Unimedms
 */
public class CmdExecExcluirLanc extends CmdExecDefault {

    public boolean execute(HttpServletRequest request, HttpServletResponse response) {
        // obtendo dados padrao
        setDefaultDBParameters(request, response);
        //
        try {

            String CodLanc = (getParameter(request, "tabid"));
            String teste = CodLanc;
            String datahora = FormatDate.getDataAtualFormatDateTime();
            // executar alguma operacao e retornar HTML via AJAX
            StringBuilder HTMLBuf = new StringBuilder();
            response.setContentType("text/html");
            response.setHeader("Cache-Control", "no-cache");
            StringBuilder sql = new StringBuilder("select distinct ra.rga_nome_arquivo as arquivo, ra.rga_documento as fatura from ung_registros_arquivos ra where ra.rga_lar_numero_importacao in "
                    + "(select l.lan_numero_importacao from ung_lancamentos l where l.lan_cod_lancamento in (" + CodLanc + "))");
            PreparedStatement pstmt = connLocal.prepareStatement(sql.toString());
            ResultSet ps = pstmt.executeQuery();
            while (ps.next()) {
                String arquivo = ps.getString("arquivo");
                StringTokenizer valores = new StringTokenizer(teste, ",");
                while (valores.hasMoreTokens()) {
                    String valor = valores.nextToken(); 
                    CallableStatement cs = connLocal.prepareCall("{? = call F_REMOVELANCAMENTOS(?,?,?,?)}");
                    cs.registerOutParameter(1, java.sql.Types.INTEGER);
                    cs.setString(2, valor);
                    cs.setString(3, null);
                    cs.setString(4, null);
                    cs.setString(5, null);
                    cs.execute();
                    cs.close();
                    int retfunc = cs.getInt(1);
                    CallableStatement cs1 = connLocal.prepareCall("{? = call F_EXCLUI_A500(?)}");
                    cs1.registerOutParameter(1, java.sql.Types.INTEGER);
                    cs1.setString(2, arquivo);
                    cs1.execute();
                    cs1.close();
                    int retfunc01 = cs1.getInt(1);
                    String MsgLog = " CmdExecExcluirLanc fatura = " + ps.getString("fatura") + " Arquivo: " + arquivo + " Usuario logado: " + usuario + " Retorno da F_EXCLUI_A500: " + retfunc01 + " Retorno da F_REMOVELANCAMENTOS: " + retfunc + " - " + datahora;
                    Geral.SaveLog(connLocal, servlet.getProperty("SQLCodUsuario"), "E", "Usuario-> " + usuario + MsgLog, usuario, "CmdExecExcluirLanc", servlet.getProperty("NomeTabelaLog"), servlet.getProperty("DbName"));
                    if (retfunc == 1 || retfunc01 == 1) {
                        HTMLBuf.append("Ação processada com sucesso...\n");
                        HTMLBuf.append("A fatura com código: " + CodLanc + " foi excluida com sucesso");
                    } else {
                        HTMLBuf.append("Registro não encontrado!");
                    }
                }
            }
            response.getWriter().write(Geral.TirarAcentos(HTMLBuf.toString()));
            return true;

        } catch (Exception e) {
            Erro.GerarException(e, NomeArqException, DebugException, "CmdExecExcluirLanc");
            return false;
        }
    }
}
drsmachado

Ok, então faça o split.

fabio_gauna

Desculpe minha ignorância. Mas como seria o split?

A

Solucionado?

drsmachado
String[] str = CodLanc.split(",");
fabio_gauna

não solucionado

fabio_gauna

drsmachado vou tentar do jeito que me falou, depois coloco o resultado

fabio_gauna

drsmachado funcionou! muito obrigado pela dica

rogelgarcia

Em Java é falta de educação criar variáveis iniciadas com letra maiúscula!

drsmachado

Com certeza.
Primeira letra maiúscula apenas quando se trata de Classe ou CONSTANTE, que, convenciona-se, seja toda em letras maiúsculas.

A
fabio_gauna:
não solucionado

ex:

public static void main(String[] args) {   
           
        String exemplo = "a|b|c|d|e|f";   
           
        String[] temp = StringUtils.split(exemplo, "|");   
           
        for (int i = 0; i < temp.length; i++) {   
               
            System.out.println( temp[i]);   
        }   
           
 }

Fonte: http://www.guj.com.br/java/42204-metodo-split-da-classe-string

Entendeu?

fabio_gauna

Valeu andredecotia.

Já consegui resolver.

drsmachado
andredecotia:
fabio_gauna:
não solucionado

ex:

public static void main(String[] args) {   
           
        String exemplo = "a|b|c|d|e|f";   
           
        String[] temp = StringUtils.split(exemplo, "|");   
           
        for (int i = 0; i < temp.length; i++) {   
               
            System.out.println( temp[i]);   
        }   
           
 }

Fonte: http://www.guj.com.br/java/42204-metodo-split-da-classe-string

Entendeu?

Só lembrando que
split("|");
Não funciona. Ele irá separar caracter a caracter. Agora
split("\|");
Funciona.
Criado 22 de junho de 2011
Ultima resposta 22 de jun. de 2011
Respostas 15
Participantes 4