Problemas ao enviar valor JSP

3 respostas
A

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?

3 Respostas

M

onde vc esta populando estes valores:

inss = valor.getInss(); 
      salario_liquido = valor.getLiquido(); 
      porcentagem = valor.getPorcentagem();

vc esta dando um get neles mas nao tem nem um valor atribuido a eles. Eles estao vindo com o valor padrão com que eles são inicializados. O unico que não vem com o valor padrão eh o atributo liquido que esta sendo iniciallizado no construtor como 0.

D

brother…
dá uma olhadinha nessas linhas:

ResultadoInss valor = new ResultadoInss();
      
      inss = valor.getInss();
      salario_liquido = valor.getLiquido();
      porcentagem = valor.getPorcentagem();

vc instanciou o objeto ResultadoInss…
e só recuperou os valores…
como nenhum deles foi “setado”…é devolvido o valor default de cada tipo…
para String - null…para int 0…

pelo q. vi do seu código…o método que modifica esses valores é o

public void base_calculo(double Abase)

q. recebe a base de calculo como argumento e calcula inss, porcentagem, liquido…
mas…lembrando! vc nao fez chamada a esse método…

t+

A

Era isso mesmo Diana valeu mesmo funcionou at+

Criado 13 de fevereiro de 2007
Ultima resposta 19 de fev. de 2007
Respostas 3
Participantes 3