Problemas ao enviar valor JSP

1 resposta
alexandremanowar

E ae pessoal blz

Eu estou fazendo um teste de servlets com jsp e esta rudo ok menos alguns campos que estão exibindo valor em branco.
O código é o seguinte:
Um formulaŕio html que possui os campos nome e salario
Um servlet que recebe os valores e joga para uma class em java que calcula e retorna o valor ao servlet que manda um resultado para um jsp, veja o código:

esse é o servlet

package com.example.web;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import com.example.model.*;
public class CalculoInss extends HttpServlet
{
	private double inss;
	private double salario_liquido;
	private String porcentagem;
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
	{
		String nome = request.getParameter("nome");
		String salario = request.getParameter("salario");

		ResultadoInss valor = new ResultadoInss();
		
		inss = valor.getInss();
		salario_liquido = valor.getLiquido();
		porcentagem = valor.getPorcentagem();
		
		
		request.setAttribute("nome", nome);
		request.setAttribute("salario_bruto", salario);
		request.setAttribute("inss", inss);
		request.setAttribute("salario_liquido", salario_liquido);
		request.setAttribute("porcentagem", porcentagem);
	
		RequestDispatcher view = request.getRequestDispatcher("resultado.jsp");
		view.forward(request, response); 
	}

}

esse é a class

package com.example.model;

import java.util.*;

public class ResultadoInss
{
	private double inss;
	private double liquido;
	private double bruto;
	private String porcentagem;
	
	public ResultadoInss()
	{
		liquido = 0;
	}
	
	public void base_calculo(double Abase)
	{
		double newBase = Abase;
		bruto = newBase;
		
		if(bruto < 1000)
		{
			porcentagem = "10%";
			inss = bruto * 0.10;
		}
		else
		{
			porcentagem = "15%";
			inss = bruto * 0.15;
		}
		
		liquido = bruto - inss;
	}

	public double getLiquido()
	{
		return liquido;
	}

	public double getInss()
	{
		return inss;
	}
	
	public String getPorcentagem()
	{
		return porcentagem;
	}
	

}

esse é o JSP

<%@ page import="java.util.*" %>

<html>
<body>
<h1 align="center">Cáculo de inss</h1>
<p>

<%
	String nome = (String)request.getAttribute("nome");
	String salario_bruto = (String)request.getAttribute("salario_bruto");
	double inss = ((Double)request.getAttribute("inss")).doubleValue();
	double salario_liquido = ((Double)request.getAttribute("salario_liquido")).doubleValue();
	String porcentagem = (String)request.getAttribute("porcentagem");

	out.print("<br>Nome: " + nome);
	out.print("<br>Salário bruto: " + salario_bruto);
	out.print("<br>INSS: " + inss);
	out.print("<br>Salário liquido: " + salario_liquido);
	out.print("<br>Porcentagem: " + porcentagem);
%>
</body>
</html>

Ele exibe os campo nome e salário com valores, mas os campos inss e salário líquido vem o valor 0.0 e o campo porcentagem vem o valor como null dessa forma:

porque esta exibindo os valores 0.0 e null se eu estou enviando os dados?

1 Resposta

K

alexandremanowar ,
pelo que vi no seu código vc faz…

pega o nome e o salario, depois vc  um new na classe e pega o

inss, que o valor inicial é 0

salario_liquido = 0;

porcentagem = null;

vc esqueceu de um pequeno detalhe…
executar a função base_calculo()

acho que vc queria fazer isso neh!

package com.example.web;
 
 import javax.servlet.*;
 import javax.servlet.http.*;
 import java.io.*;
 import com.example.model.*;
 public class CalculoInss extends HttpServlet
 {
 	private double inss;
 	private double salario_liquido;
 	private String porcentagem;
 	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
 	{
 		String nome = request.getParameter("nome");
 		String salario = request.getParameter("salario");
 
 		ResultadoInss valor = new ResultadoInss();
 		valor.base_calculo(Double.parseDouble(salario));

 		inss = valor.getInss();
 		salario_liquido = valor.getLiquido();
 		porcentagem = valor.getPorcentagem();
 		
 		
 		request.setAttribute("nome", nome);
 		request.setAttribute("salario_bruto", salario);
 		request.setAttribute("inss", inss);
 		request.setAttribute("salario_liquido", salario_liquido);
 		request.setAttribute("porcentagem", porcentagem);
 	
 		RequestDispatcher view = request.getRequestDispatcher("resultado.jsp");
 		view.forward(request, response); 
 	}
 
 }

não rodei esse código mas faltou esse detalhe, vc antes só exibia os valores iniciais das variáveis

abraços

Criado 13 de fevereiro de 2007
Ultima resposta 13 de fev. de 2007
Respostas 1
Participantes 2