O que tem de errado neste Comando?

19 respostas
M

usuario.setNome(request.getParameter(“nome”));

19 Respostas

M

ta retornando null!!

danieldestro

Parece que não tem nada de errado.
Primeiro parece que este método não retorna nada. Verifica que o getParameter traz o valor do parâmetro “nome”.

P

Posta um pouco mais do código. :wink:
Meu chute é que nao tem nada setando o parametro nome (tipo um combobox, ou um textfield).

M

FIZ DESTA FORMA!!

String idUsuario = (String) request.getParameter("id"); 

if( idUsuario != null ) { 

int id = Integer.parseInt(idUsuario); 
Usuario usuario = GerenciadorUsuario.pegarUsuario(id); 
Tarefa tarefa = GerenciadorTarefa.pegarTarefa(id); 

if( (usuario != null) && (tarefa != null)) { 

%> 
<input type="hidden" name="id" value="<%= id %>"> 
<table> 

<tr> 
<td>Nome Usuario:</td> 
<td><input type="text" name="nome" value="<%= usuario.getNome()%>"></td> 
</tr> 
<tr> 
<tr> 
<% 
usuario.setNome(request.getParameter("nome")); 
%>

USE A TAG CODE PARA MARCAR SEU CÓDIGO.

danieldestro

Qual o sentido de usuario.setNome(request.getParameter(“nome”)); nesse teu código ai?

M

no html eu pego o nome que ja cadastrei no vetor usuario, e mostro na tela!!!
estou tentando altera-lo

danieldestro

usuario NÃO é um vetor. É uma variável com uma instância de um objeto, provavelmente do tipo Usuario.
E ali você está jogando null para o nome do usuário, pois a primeira vez que você acessa a página o parâmetro deve ser nulo.

M

como posso fazer isso pode me ajudar???

esse codigo gera o vetor

public class GerenciadorUsuario {
private static Vector usuarios = new Vector();

public static void adicionarUsuario(Usuario novoUsuario) {

usuarios.add(novoUsuario);

}
danieldestro

O código do jsp que vc mostrou não tem nada de Vector e nao to entendo como vc quer relacionar uma coisa com outra. Sem saber dos requisitos nao da pra entender mto.

M

vc tem msn?? posso te explicar ali!!
To quase 3 semanas fazendo isso e so falta esse detalhe de alterar

danieldestro

Continue no forum… aqui é o lugar de resolver isso.

M

neste código eu cadastro o Usuario:

<%@ page import="java.util.*, p1.*" %>
<html>
<title>Página de Criação</title>
<%
	String nome = request.getParameter("nome");
	String email = request.getParameter("email");
	String cargo = request.getParameter("cargo");
	
	String dia = request.getParameter("dia");
	String mes = request.getParameter("mes");
	String ano = request.getParameter("ano");
	
	String nomeT = request.getParameter("nomeT");
	String desc = request.getParameter("desc");
	
	String diaT = request.getParameter("diaT");
	String mesT = request.getParameter("mesT");
	String anoT = request.getParameter("anoT");
	
	String statusStr = request.getParameter("status");
	String strFer = request.getParameter("ferias"); 


int status;
		if (statusStr.equals("normal")) {
			status = Tarefa.NORMAL;
		} else if (statusStr.equals("urgente")) {
			status = Tarefa.URGENTE;
		} else {
			status = Tarefa.IMEDIATA;
		}
		
if ( nome.equals("") || email.equals("")   || cargo.equals("")   || dia.equals("") || 
     mes.equals("")  || ano.equals("")     || nomeT.equals("")   || desc.equals("")   || 
     diaT.equals("") || mesT.equals("")    || anoT.equals("") ) {
%>
<jsp:forward page="criacaoFalhou.html"/>
<%
	}else { 
		
		boolean fer = strFer.equals("true") ? true : false;
		
		Tarefa tarefa = new Tarefa(nomeT, desc, diaT, mesT, anoT, status);
        Usuario usuario = new Usuario (nome, email, cargo, dia, mes, ano, fer);

        GerenciadorUsuario.adicionarUsuario(usuario);
        GerenciadorTarefa.adicionarTarefa(tarefa);
	
%>
<center>
<ALIGN=Left></H4><A HREF = "GerenciaUsuario.html">Voltar ao Menu Inicial</h4></A>
<h2>Estes são os USUÁRIOS  e TAREFAS cadastrados no sistema:</h2>

</td>
</tr>

<table border=1>
<tr>

<%
	Vector asTarefas = GerenciadorTarefa.getTarefas();
	Vector osUsuarios = GerenciadorUsuario.getUsuarios();
	
	Tarefa t;
	Usuario u;
		for (int i=0;i<osUsuarios.size();i++) {
			u = (Usuario)osUsuarios.elementAt(i);
			t = (Tarefa)asTarefas.elementAt(i);
		
%>

<td colspan="1"><b>Nome do Usuario</b></td><td><b>Email</b></td><td><b>Cargo</b></td><td>
<b>Tarefa</b></td><td><b>Descrição da tarefa</b></td>

<tr>
<tr>

<td><%= u.getNome() %></a></td><td><%= u.getEmail() %></td>
<td><%= u.getCargo() %></td><td><%= t.getNomeT() %></td><td><%= t.getDesc() %></td>
<tr>

<%  } %>
</table>
<%
}
%>
<TD ALIGN="LEFT"><A HREF = "criaUsuario.html">Realizar Novo Cadastro</td></A>

</html>
M

Aqui eu gerencio os vetores de usuarios

package p1;

import java.util.*;

public class GerenciadorUsuario {
  private static Vector usuarios = new Vector();

  public static void adicionarUsuario(Usuario novoUsuario) {
    usuarios.add(novoUsuario);
  }

  public static void removerUsuario(Usuario novoUsuario) {
    usuarios.remove(novoUsuario);
  }

  public static Usuario removerUsuario(int idd) {
    if (usuarios.size() > 0)
      return (Usuario) usuarios.remove(idd);
    return null;
  }

  public static Vector getUsuarios() {
    return usuarios;
  }

  public static Usuario pegarUsuario(int id) {
    if (usuarios.size() > 0)
      return (Usuario) usuarios.get(id);
    return null;
  }

}
M

Aqui eu mostro na tela as informaçoes de um usuario ja cadastrado!

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

<br>
</td>
</tr>


<%
	Vector asTarefas = GerenciadorTarefa.getTarefas();
	Vector osUsuarios = GerenciadorUsuario.getUsuarios();
	if (osUsuarios.isEmpty() && osUsuarios.isEmpty()){
     %>
     <center><h2>ATUALMENTE NÃO EXISTE NENHUM USUÁRIO CADASTRADO NO SISTEMA</h2>
     
     <%} else {
%>

<h2>Para ALTERAR os dados do usuário no 
<br>sistema clique no NOME DO USUÁRIO:</h2>

<%
	Tarefa t;
	Usuario u;
		for (int i=0;i<osUsuarios.size();i++) {
			u = (Usuario)osUsuarios.elementAt(i);
			t = (Tarefa)asTarefas.elementAt(i);
		
%>

<table border=1>
<tr>
<td colspan="1"><b>Nome do Usuario</b></td><td><b>Email</b></td><td><b>Cargo</b></td><td>
<b>Tarefa</b></td><td><b>Descrição da tarefa</b></td>

<tr>
<tr>

<td><a href="altera.jsp?id=<%=i%>"><%= u.getNome() %></a></td><td><%= u.getEmail() %></td>
<td><%= u.getCargo() %></td><td><%= t.getNomeT() %></td><td><%= t.getDesc() %></td>
<tr>
</table>

<br>

<%}}%>

<TD ALIGN="LEFT"><A HREF = "GerenciaUsuario.html">Menu Principal</td></A>

</html>
M

aqui, mostro as informacoes podedo alteralas precisando fazer com que elas sejam alteradas.
isso que nao consigo fazer!

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

<body>
<h2>Cadastro do Usuario Solicitado</h2>
<h4>Na tabela abaixo, voce poderá selecionar outro usuário caso desejar.</h4>

<%

String idUsuario = (String) request.getParameter("id");

if( idUsuario != null ) {
  
  int id = Integer.parseInt(idUsuario);
  Usuario usuario = GerenciadorUsuario.pegarUsuario(id);
  Tarefa tarefa = GerenciadorTarefa.pegarTarefa(id);
  
  if( (usuario != null) && (tarefa != null)) {  
    
%>
<input type="hidden" name="id" value="<%= id %>">
<table>

<tr>
<td>Nome Usuario:</td>
<td><input type="text" name="nome" value="<%= usuario.getNome()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Email do Usuario:</td>
<td><input type="text" name="nome" value="<%= usuario.getEmail()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Cargo do Usuário:</td>
<td><input type="text" name="nome" value="<%= usuario.getCargo()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Data de Nascimento:</td> 
  <td> <input type="text" SIZE=2 name="dia" value="<%= usuario.getDia()%>">  /  
       <input type="text" SIZE=2 name="mes" value="<%= usuario.getMes()%>">  /  
       <input type="text" SIZE=4 name="ano" value="<%= usuario.getAno()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Tarefa:</td>
<td><input type="text" name="nome" value="<%= tarefa.getNomeT()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Descrição da Tarefa:</td>
<td><input type="text" name="nome" value="<%= tarefa.getDesc()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Término da Tarefa:</td> 
  <td> <input type="text" SIZE=2 name="dia" value="<%= tarefa.getDiaT()%>">  /  
       <input type="text" SIZE=2 name="mes" value="<%= tarefa.getMesT()%>">  /  
       <input type="text" SIZE=4 name="ano" value="<%= tarefa.getAnoT()%>"></td>
</tr>
<tr>
<tr>

<tr>
<td>Status da Tarefa:</td>
<td><select name="status" value="<%= tarefa.getStatus()%>"> 
  <option value="normal">Normal
  <option value="urgente">Urgente
  <option value="imediata">Imediata
  </select></td>
</tr>
<tr>
<tr>

<tr>
<td>Usuário em Férias ?</td>
<td><select name="ferias" value="<%= usuario.getFer()%>">
  <option value="nao">Não
  <option value="sim">Sim
  </select></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td><input type="submit" value="Alterar Dados" onclick="document.location='/inf1371/verificarUsuarioAdmin.jsp?id=<%= id %>'"></td>
</tr>

</table>

<%}
usuario.setNome(request.getParameter ("id"));
  } else { %>

<table border=1>
<tr>
<td colspan="1"><b>Nome do Usuario</b></td>
<td><b>Email</b></td>
<td><b>Cargo</b></td>
<td><b>Tarefa</b></td>
<td><b>Descrição da tarefa</b></td>
</tr>

<%    
  Vector asTarefas = GerenciadorTarefa.getTarefas();
  Vector osUsuarios = GerenciadorUsuario.getUsuarios();
  
  Tarefa t;
  Usuario u;
    for (int i=0;i<osUsuarios.size();i++) {
      u = (Usuario)osUsuarios.elementAt(i);
      t = (Tarefa)asTarefas.elementAt(i);
    
%>

<tr>
<td><a href="altera.jsp?id=<%=i%>"><%= u.getNome() %></a></td>
<td><%= u.getEmail() %></td>
<td><%= u.getCargo() %></td>
<td><%= t.getNomeT() %></td>
<td><%= t.getDesc() %></td>
</tr>

<% }
 if (osUsuarios.size() == 0) { %>

 <CENTER><H2>NÃO EXISTEM USUÁRIOS CADASTRADOS NO SISTEMA !!!</H2>

<% } else { %>

</table>

<A HREF = "criaUsuario.html">Realizar Novo Cadastro</td>

<% }
} %>

<br>
<br>
<A HREF = "GerenciaUsuario.html">Voltar</A>
</form>
</body>
</html>
danieldestro

1 - COLOQUE SEU CÓDIGO DENTRO DA TAG CODE

2 - Você não deveria usar Java dentro do seu JSP e dividir no modelo MVC (mas isso é outro assunto)

3 - Use a interface java.util.List em vez de Vector nas declarações (ok: dentro da classe GerenciadorUsuario você pode instanciar a lista como um Vector - por causa da concorrência - já que usa um Vector ao invés de um banco de dados)

4 - Use Iterator para percorrer uma lista (ou vector) em vez de um loop for diretamente na lista.

5 - Quando você processa dados de um formulário HTML, primeiro você precisa enviá-los ao server.

6 - Você está usando a tag <select> de maneira errada. Ela não tem o atributo value.

M

Não posso usar Iterator, tenho que usar vetor pq foi o professor que disse para usar.

Vc poderia moldar a classe onde postei
usuario.setNome(request.getParameter (“id”));

para poder funcionar??

danieldestro

Claro que você pode (E DEVE) usar Iterator… se seu professor não deixa, ele não conhece Java.

Iterator it = usuarios.iterator(); while( it.hasNext() ) { Usuario u = (Usuario) it.next(); // ... }

E pra validar os dados alterados, faz algo parecido com o JSP que grava os usuários (http://www.guj.com.br/posts/list/30423.java#163434), porém você deve considerar o ID do usuário.

M

Daniel, o professor disse que devemos fazer isso com vetor, foi norma do trabalho!! Não é pelo fato de ser melhor e norma do trabalho!!

So falta alterar, somente isso… pode me ajudar neste ponto??

Criado 3 de abril de 2006
Ultima resposta 3 de abr. de 2006
Respostas 19
Participantes 3