[RESOLVIDO] Javascript não é localizado com JSTL

10 respostas
ERVER

Boa tarde pessoal, to eu aqui de novo.

Tô chamando um método dentro do onclick de um button aqui na jsp, e esse msm metodo ta no arquivo "WEB-INF/resources/js/teste.js", e a minha jsp ta em "WEB-INF/views/teste-sha256.jsp".

Seguem os códigos abaixo:

JSP teste-sha256.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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>


<script type="text/javascript" src="<c:url value='/resources/js/teste.js' />">
</script>

<title>Insert title here</title>
</head>
<body>
	<form name="form" id="form" method="post">
		<table cellpadding="0" cellspacing="0" align="center">
			<tr>
				<td> <input type="text" id="senha" name="senha" /> </td>
			</tr>
			<tr>
				<td> <input type="button" value="Button" onclick="teste.alertar()" /> </td>
			</tr>
		</table>
	</form>
</body>
</html>
teste.js
function alertar() {
	alert("TESTANDO AQUI");
}

Acontece que no evento onclick do button, eu já tentei chamar dessas formas:

onclick="teste.alertar()"
e
onclick="teste.alertar();"
e
onclick="alertar()"
e
onclick="alertar();"

E de forma alguma esse código javascript é executado. Quando coloco o código javascript dentro da jsp, funciona. O mais estranho é que tenho ouros códigos javascript aqui, em que chamo o arquivo usando JSTL, e funciona numa boa.

Talvez eu tenha me esquecido de algo, quem puder ajudar com qlq idéia, agradeço mto.

Abraços.

10 Respostas

ERVER

Nadinha?

drsmachado

Como fica o html gerado?

ERVER
<!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>


<script language="javascript" src="/projeto-web/resources/js/teste.js">
</script>

<title>Insert title here</title>
</head>
<body>
	<form name="form" id="form" method="post">
		<table cellpadding="0" cellspacing="0" align="center">
			<tr>
				<td> <input type="text" id="senha" name="senha" /> </td>
			</tr>
			<tr>
				<td> <input type="button" value="Button" onclick="alertar();" /> </td>
			</tr>
		</table>
	</form>
</body>
</html>

Onde "projeto-web" é o nome do meu projeto mesmo.

Se eu clico no link dele no código-fonte, da 404.

Abraço.

drsmachado

Precisa corrigir o path do arquivo js.
Aliás, não há qualquer mal em colocar o mesmo sem o uso de JSTL, a não ser que você esteja com uma HK apontada para tua cabeça, neste caso, sugiro simplesmente rever se o caminho é aquele mesmo.

ERVER

drsmachado,

Primeiramente muito obrigado por estar ajudando.

Mas o caminho tá correto, tanto que uso para outros arquivos (alterando apenas o nome do arquivo, é claro), e funciona.

kivervinicius

Você utiliza o google chrome? caso sim, pressione botão direito na página e vá em inspecionar elemento, veja se não ocorre nenhum erro de javascript no rodapé.

ERVER

Olá kivervinicius,

Primeiramente, muito obrigado pela atenção e ajuda.

Fiz o que você recomendou e e retorna 404 também. Muito estranho, pq tenho outros dois arquivos javascript na msm pasata resources e funcionam certinho, pq esta pasta ta mapeada no meu arquivo de configuração do spring.
Quando a dica de colocar o caminho completo do arquivo tmb (a começar pelo context), testei e também deu 404. To até com cara de tacho aqui. Não sei mais o que fazer.

Abraços.

ERVER

Já tentei de tudo, testei outras máquinas, e nada.

ERVER

Resolvido. Eu tava com duas pastas resources: uma na WebContent (a que estava mapeada e funfando) e outra na WEB-INF (onde eu tava jogando o .js e não dava certo). Erro de amador, desculpem fazer vocês perderem tempo com isso.

Muito obrigado pela atenção, um grande abraço a todos.

kivervinicius

Tá certo cara, que bom que foi resolvido :slight_smile:

Criado 31 de outubro de 2012
Ultima resposta 1 de nov. de 2012
Respostas 10
Participantes 3