Duvida em JSP com JSTL [RESOLVIDO]

5 respostas
alerson

Boa tarde pessoal, sou iniciante em DESENVOLVIMENTO WEB. Meu problema é que esta dando um erro quando tento colocar isso dentro da action da tag form.

<form action="${pageContext.request.requestURI}" method="post">

Erro:

javax.servlet.ServletException cannot be resolved to a type

Se alguém puder me ajudar, agradeço desde já.

5 Respostas

jaboot

Olá alerson,

Só de colocar isso em uma jsp de teste já deu o mesmo erro pra mim. O que exatamente você queria com esse ${pageContext.request.requestURI} na action do form?
Já que você é iniciante, você sabe pra que serve a action do form?

alerson

jaboot:
Olá alerson,

Só de colocar isso em uma jsp de teste já deu o mesmo erro pra mim. O que exatamente você queria com esse ${pageContext.request.requestURI} na action do form?
Já que você é iniciante, você sabe pra que serve a action do form?

Estou colocando o código para você analisar.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ 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"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>A Action forTokens</title>
</head>
<body>
	<form action="${pageContext.request.requestURI}" method="post">
		<table>
			<tr>
				<th>Digite a sequancia de dados</th>
			</tr>
			<tr>
				<td><input width="20" maxwidth="20" name="palavras" size="50"
					value="${param.palavras}" /></td>
			</tr>
			<tr>
				<td><input type="submit" name="enviar" value="Enviar" /></td>
			</tr>
		</table>
	</form>
	<c:if test="${pageContext.request.method=='POST'}">
		<table border="1">
			<c:set var="i" value="1" />
			<c:forTokens items="${param.palavras}" var="palavra" delims="-;,">
				<tr>
					<td><strong>Palavra <c:out value="${i}" /></strong></td>
					<c:set var="i" value="${i+1}" />
					<td><c:out value="${palavra}" /></td>
				</tr>
			</c:forTokens>
		</table>
	</c:if>
</body>
</html>
jaboot

Oi alerson,

Você só precisa definir uma URL válida pra colocar na sua action. É esse o erro.

alerson

jaboot:
Oi alerson,

Você só precisa definir uma URL válida pra colocar na sua action. É esse o erro.

Você poderia me mostrar um exemplo, pois estou seguindo um livro e esta exatamente como o livro pede e esta dando esse erro.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ 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"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>A Action forTokens</title>
</head>
<body>
	<form action="${pageContext.request.requestURI}" method="post">
		<table border="0">
			<tr>
				<th>Digite a sequancia de dados</th>
			</tr>
			<tr>
				<td><input width="20" maxwidth="20" name="palavras" size="50" value="${param.palavras}" /></td>
			</tr>
			<tr>
				<td><input type="submit" name="enviar" value="Enviar" /></td>
			</tr>
		</table>
	</form>
	<c:if test="${pageContext.request.method==POST}">
		<table border="1">
			<c:set var="i" value="1" />
			<c:forTokens items="${param.palavras}" var="palavra" delims="-;,">
				<tr>
					<td><strong>Palavra <c:out value="${i}" /></strong></td>
					<c:set var="i" value="${i+1}" />
					<td><c:out value="${palavra}" /></td>
				</tr>
			</c:forTokens>
		</table>
	</c:if>
</body>
</html>
alerson

Pessoal gostaria de agradecer a todos que olharam e que também deram opinião, sobre a minha dúvida.
Vim no entanto dizer que consegui achar o erro, bom por incrível que pareça eu apenas apaguei a página .jsp criada e recriei novamente, vou posta-la para notarem que não mudou exatamente “nada” , não me perguntem o porque disso, só sei dizer que não é a primeira vez que o eclipse me da um dessa.

Página .jsp recriada.

<%@ 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" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>A action forTokens</title>
</head>
<form action="${pageContext.request.requestURI}" method="post">
		<table border="0">
			<tr>
				<th>Digite a sequancia de dados</th>
			</tr>
			<tr>
				<td><input  name="palavras" size="50" value="${param.palavras}" /></td>
			</tr>
			<tr>
				<td><input width="20" maxlength="20" type="submit" name="enviar" value="Enviar" /></td>
			</tr>
		</table>
	</form>
	<c:if test="${pageContext.request.method=='POST'}">
		<table border="1">
			<c:set var="i" value="1" />
			<c:forTokens items="${param.palavras}" var="palavra" delims="-;,">
				<tr>
					<td><strong>Palavra <c:out value="${i}" /></strong></td>
					<c:set var="i" value="${i+1}" />
					<td><c:out value="${palavra}" /></td>
				</tr>
			</c:forTokens>
		</table>
	</c:if>
</body>
</html>

Para quem quiser ver o resultado da aplicação, apenas copie e cole o código em uma pagina JSP e inicie o servidor de aplicação para subir a pagina e digite no browser o caminho da sua aplicação. Verá a action forTokens em ação.

Mais uma vez grato pela atenção de todos, obrigado.

Criado 26 de março de 2012
Ultima resposta 27 de mar. de 2012
Respostas 5
Participantes 2