1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Vraptor ${pageContext.request.contextPath} não é interpretado

Estou realizando testes com vraptor através de um login.

Criei um projeto web com o maven e adicionei as dependências.

Porem no momento não estou conseguindo criar um link dentro da minha jsp com a url do contexto atual.

A url fica http://localhost:8080/sistema/$%7BpageContext.request.contextPath%7D/autenticar Quando o esperado é que fosse convertida para http://localhost:8080/sistema/autenticar

Como estou lendo apostilas e estudando como trabalhar com Java web eu posso estar deixando algo muito básico passar, alguém pode me ajudar?

Estou utilizando o Tomcat (apache-tomcat-7.0.34)

  <dependency>
    <groupId>br.com.caelum</groupId>
    <artifactId>vraptor</artifactId>
    <version>3.1.3</version>
  </dependency>

/WEB-INF/jsp/login

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Login</title>
</head>
<body>
    <form action="${pageContext.request.contextPath}/autenticar"
        method="post">
        E-mail: <input type="text" name="usuario.email" /> Senha: <input
            type="text" name="usuario.senha" /> <input type="submit"
            value="acessar" />
    </form>
</body>
</html>

/WEB-INF/web.xml

<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

LoginController.java

@Resource
public class LoginController {

    private final Result result;
    private final UsuarioRepository repository;
    private final UserSession userSession;

    public LoginController(Result result, UsuarioRepository repository,
            UserSession userSession) {
        this.result = result;
        this.repository = repository;
        this.userSession = userSession;
    }

    @Path("/login")
    public void login() {

    }

    @Post
    @Path("/autenticar")
    public void autenticar(Usuario usuario) {
        Usuario user = repository.get(usuario.getEmail(), usuario.getSenha());

        if (user != null) {
            userSession.setUser(user);

            result.redirectTo(IndexController.class).index();
        } else {
            result.include("error", "Usuário ou senha incorreta!")
                    .redirectTo(this).login();
        }
    }

}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>sistema</groupId>
    <artifactId>sistema</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>sistema</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>br.com.caelum</groupId>
            <artifactId>vraptor</artifactId>
            <version>3.5.0</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.6.Final</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>sistema</finalName>
    </build>
</project>
  • Coloca a jsp completa na pergunta pra gente ver.

    lucastody   16 de out de 2014
  • Adicionei o jsp completo conforme solicitado

    ByddU   16 de out de 2014
  • Tem certeza de que o a página de login tem extensão .jsp? Se não for isso, o problema pode estar nas dependências de seu projeto, pode estar faltando as dependencias de Expression Languages. Posta seu pom.xml e informa que servidor está usando (Tomcat, Jboss etc ).

    pvrsouza   16 de out de 2014
  • Verifiquei e o login está com a extensão .jsp. Adicionei na pergunta a versão do tomcat e postei o o pom xml. No momento estou procurando qual eh o jar que representa esse Expression Languages.

    ByddU   16 de out de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java java-ee vraptor jsp ou faça a sua própria pergunta.