Jsp com atributos

7 respostas
A

opa, blz ?
como carregar uma página jsp com attributos dinamicamente. vou chamar está página através de uma servlet.

estava lendo um tutorial sobre jsp e acho que com setAttribute e getAttribute vou conseguir atingir meu objetivo, alguém poderia me passar algum exemplo simples ou como proceder.

obrigado,
Augusto.

7 Respostas

nilolima

Tem vc pode passar atributos para um JSP pelo contexto, pelo request ou pela sessão. Se lembro-me bem só.
Tem que ver qual seu problema para saber a solução.

Valeu

tricano

Olá Augusto !!

À alguns meses montei um protótipo para teste sem framework, e espero que seja útil.

Existe a ausência do SINGLETON ao fazer uso do DAO, mas como disse, foi apenas um protótipo em teste.

Servlet:

package br.com.quitanda.controller;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import br.com.quitanda.dao.ProdutoDAO;
import br.com.quitanda.model.Produto;

public class PesquisarProdutoController extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

private static final long serialVersionUID = 1L ; 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	int iID = Integer.parseInt( request.getParameter("id") ) ;
	
	try{
		
		ProdutoDAO dao = new ProdutoDAO() ;
		Produto produto = new Produto() ;
		produto = dao.getProduto( iID ) ;
		
		request.setAttribute("produto", produto);
		request.getRequestDispatcher("AlterarProduto.jsp").forward( request , response );
		
	}catch ( Exception e ){
		e.printStackTrace() ;
	}
	
}

}

JSP

<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

Quitanda Software

Alterar Produto


<table border="0">				
	<tr>
	    <td>ID:</td>
		<td><input type="text" name="id"  size="10" maxlength="10" value="${produto.id}"></td>
	</tr>
	<tr>
	    <td>Nome:</td>
		<td><input type="text" name="nome"  size="50" maxlength="50" value="${produto.nome}"></td>
	</tr>
	<tr>
	    <td>Preço:</td>
		<td><input type="text" name="preco"  size="10" maxlength="10" value="${produto.preco}"></td>
	</tr>
	<tr>
	    <td>Estoque:</td>
		<td><input type="text" name="estoque"  size="10" maxlength="10" value="${produto.estoque}"></td>
	</tr>
	<tr>
		<td></td>
		<td><input type="submit" value="Confirmar"></input></td>
	</tr>
</table>
A

tricano,
surgiu um problema, tenho o seguinte código na servlet

req.setAttribute(“nome”, rs.getString(“nome”)); req.getRequestDispatcher(“http://localhost:8080/att/index.jsp”).forward(req, res);

e me retorna o seguinte :
The requested resource (/att/servlet/http:/localhost:8080/att/index.jsp) is not available.

porque está aparecendo /att/servlet/ no inicio do caminho ? tem algo a ver com meu contexto criado ?
o contexto é /att !

obrigado mais uma vez.

neolima,
tenho uma página jsp com campos text que devem ser preenchidos
de acordo com uma consulta que é passada para a servlet, a mesma deve recarregar(ou alocar dinamicamente) o jsp com os campos preenchidos, teria algum exemplo de session ou contexto para me ajudar ?

obrigado.

nilolima

Cara saquei teu problema, mas pelo que vi tu num ta pensando muito OO não né?

O problema do teu request Dispatcher é que ele não acessa nada fora do teu projeto. então seria melhor colocar assim:

req.getRequestDispatcher("index.jsp").forward(req, res);

Como att deve ser o nome da tua aplicação ele não entra ai não. Se for uma pasta entra.

Cara é o seguinte, o que tu quer fazer é bem facil sabe. Mas não é a melhor pratica de programação.
Tu teria que no teu servlet gerar um objeto e colocar esse objeto no request mesmo. Por exemplo se o objeto em questão é uma Pessoa. vc buscaria pessoa no banco colocaria a pessoa no request mesmo. Lá no jsp vc acessaria a pessoa usando EL.
Se não entender nada, dá uma estudada em Orientação a Objetos. Se entender OO e não sacar nada de EL, fala ai que é facinho.

A

neolima,
orientação a objetos eu estou até sacando,
o problema está neste comando req.getRequestDispatcher, não entendi ele exatamente e também não saquei EL.
poderia me dar uma ajuda ?

obrigado mais uma vez,
Augusto

nilolima

O request dispatcher recebe uma string com a uri relativa do recurso que vc quer acessar.

Seu eu quero acessar um jsp que está dentro da pasta teste. O nome do jsp é xxx.jps.
Meu request dispatcher ficaria assim
req.getRequestDispatcher(“teste/xxx.jsp”).forward(req, res);

Seu eu quero acessar um servlet que está mapeado para MyServlet

req.getRequestDispatcher(“MyServlet”).forward(req, res);

Sacou mais ou menos.

Qualquer dúvida posta ai

A

saquei nilolima,

valeu cara, obrigado.

Augusto

Criado 7 de setembro de 2006
Ultima resposta 8 de set. de 2006
Respostas 7
Participantes 3