Passagem de dados

4 respostas
Q

Bom Dia galera.
sou novo neste forum, e preciso de ajuda.
comecei agora numa empresa, para trabalhar com java, eu conheço o basico do basico e me contrataram mesmo assim para ver se no tempo de experiencia aprendo alguma coisa.

é o seguinte:
tenho um codigo de venda e cada tela que aparece eu tenmho que selecionar um produto, e ela vai guardando numa session.
Quando chega na tela de finalizar, eu vou no link voltar da pagina, e volto para selecionar mais um produto, porém eu passo por uma tela onde eu tenho que escolher um antivirus, só que nessa tela, eu já tinha escolhido, mas ele aparece não selecionado, aí eu seleciono e na tela de finalização aparece duplicado:

ex:

  • Antivirus
  • Antivirus,

teria que ser :

  • Antivirus (quantidade 2).
    eu sei que é algum erro no servlet, mas como disse entendo o basico do basico e quero passar neste tempo de experiencias aprendendo alguma coisa.

se precisarem do codigo, é só falarem.
preciso de ajuda.

4 Respostas

M

Pelo que entendi o problema ai é lógica, você tem que verificar se já tem aquele produto na session e aumentar a quantidade, caso contrário você sempre terá n itens duplicados.

Posta o seu código que fica mais fácil ajudar também.

Q
public void doGet(HttpServletRequest request, HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {

try {

HttpSession sessao = request.getSession(false);

String clientType = (String)sessao.getAttribute(clientType);

AlternateContext alternateContext  = (AlternateContext)sessao.getAttribute(context);

log.info( "INICIO ChooseProtectElements doGET " );//RFC 025
Instance instanceBandaLarga = (Instance) sessao.getAttribute("tbnInstance");
        boolean isOnNet = instanceBandaLarga.getInstallAddress().isOnNet();
        int bandaLargaDownloadStream = 0;
        try {
            Iterator iElements = instanceBandaLarga.getElements().iterator();
            while (iElements.hasNext()) {
                InstanceElement iElem = (InstanceElement)iElements.next();
                Element elem = iElem.getElement();
                ElementParam downloadParam = elem.getParameterByName("download");
                if (downloadParam != null) {
                    bandaLargaDownloadStream = downloadParam.getMaxValue().intValue()/1024;
                    break;
                }
            }
        } catch (GvtException ex) {
            String log = "DEA-STR-005 - Erro na recuperação do Elemento.";
            uniqueLog.error(log);
            throw new GvtException(log);
        }
        
        /* Carrega os elementos pagos da suite de segurança Protect. */
        Collection colProtectElements = new ArrayList();
        try {
            Bundle bundle = Bundle.ejbFindByBundleName("PROTECT_SUITE");
            colProtectElements = 
                BundleElement.ebjFindElementsByBundleCode(bundle.getBundleCode(),new String[]{"PRT"}, isOnNet);
        } catch (GvtException ex) {
            String log = "DEA-STR-005 - Erro na recuperação do Elemento.";
            uniqueLog.error(log);
            throw new GvtException(log);
        }
        request.setAttribute("colProtectElements", colProtectElements);
        /* Seta no request e finaliza. */
        
        /* Carrega os elementos gratuitos da suite de segurança Protect. */
        Element modemWiFi = null;
        // Apenas para banda larga igual ou acima de 15Mbps
        if (bandaLargaDownloadStream >= 15){
            // A colecao eh a mesma, apenas para controle de tela se deve mostrar
            request.setAttribute("colFreeProtectElements", colProtectElements);
            // Modem WiFi apenas para o 15Mbps
            if (bandaLargaDownloadStream == 15) {
                try {
                    modemWiFi = Element.ejbFindByName("Modem/Router Wi-Fi");
                    request.setAttribute("modemWiFiElement", modemWiFi);
                } catch (GvtException ex) {
                    String log = "DEA-STR-005 - Erro na recuperação do Elemento.";
                    uniqueLog.error(log);
                    throw new GvtException(log);
                }
            }
            
            /* Carrega os elementos da campanha para verificar se tem gratuitos / modem. */
            if (!"bandaLarga".equals(clientType)){
                Collection campaignElements = 
                    CampaignUtil.findElementsByCampaign(instanceBandaLarga.getCampaign());
                if(campaignElements.size() > 0){
                    Iterator campaignElementsIterator = campaignElements.iterator();
                    while(campaignElementsIterator.hasNext()){
                        Long elemCode = Long.valueOf((String)campaignElementsIterator.next());
                        Element element = Element.ejbFindByPrimaryKey(elemCode);
                        
                        String elemName = element.getName().toUpperCase();
                        if (elemName.indexOf("GRATUITO") > 0) {
                            // element gratuito, não pode ter mais de um na venda
                            request.setAttribute("freeProtectFromCampaign", element.getPrimaryKey());
                        }
                        
                        if (elemName.equals("MODEM/ROUTER WI-FI")) {
                            // modem router wi-fi na campanha, nao permite que seja retirado
                            request.setAttribute("modemWiFiFromCampaign", element.getPrimaryKey());
                        }
                    }
                }
            }
            /* Fim tratamento de campanhas. */
        }
        
        //redireciona
        forward( "/store/"+alternateContext.getContext()+"protectElements.jsp", request, response );
    } catch (Exception e) {
        HttpSession sessao = request.getSession(false);
        AlternateContext alternateContext  = (AlternateContext)sessao.getAttribute("context");  //variavel para controle de palm
		e.printStackTrace();
        request.setAttribute("errorMessage", e.getMessage());
		forward("/"+alternateContext.getContext()+"erro.jsp", request, response);
    }
}

aí está o codigo.

M

coloca isso ai entre as tags [code]
caso contrário fica difícil a leitura.

Q

Algum help?

Criado 5 de julho de 2010
Ultima resposta 5 de jul. de 2010
Respostas 4
Participantes 2