${} não funciona de jeito nenhum

9 respostas
B

Galera, estou criando uma aplicação em casa mas fiquei encucado com o fato de nada funcionar com ${}. Criei uma aplicação com Struts e Hibernate no Tomcat 6.0.18 e a aplicação roda certo, faz conexão com o banco, tudo… menos funcionar um maldito (por exemplo) ${requestScope[‘parametro’]}.

Alguém sabe me dizer o porquê ou então me indicar alguma forma melhor para testar? Sinceramente, não tenho idéia do que pode ser pois nunca tinha passado por isso… o detalhe é que também não dá erro nenhum, não acontece absolutamente nada na parte do JSP em que coloco isso…

Aguardo opiniões, valeu!

9 Respostas

mateusbrum

Opa, tenta tirar o escopo.
Talvez o objeto não esteja neste escopo.

EX ${apenasObjeto.metodo}

B

Valeu pela resposta, mas infelizmente não é esse o problema, pois a questão de requestScope, como eu disse, era só um exemplo.

Se eu colocar um scriptlet pegando o parâmetro, por exemplo, funciona… mas com o ${} (que aliás eu não me lembro o nome) não funciona de jeito nenhum…

peczenyj

Isso se chama Expression Language (vulgo EL ). Vc precisa usar um container que suporte a especificação 2.0 de JSP. Veja qual versão vc esta passando no web.xml por exemplo.

http://www.guj.com.br/posts/list/23380.java

B

Valeu pela resposta!

Tentei tudo o que havia lá, mas infelizmente não funcionou minha EL, não consigo entender. Estou utilizando Tomcat 6.0.18 e no meu web.xml a versão é a 2.5. Vou colocar meu web.xml abaixo para ver se alguém sabe me dizer onde está o erro, ok?

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>2</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>2</param-value>
        </init-param>       
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.mqm</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <jsp-config>
        [...taglibs...]
    </jsp-config>

</web-app>
peczenyj

Ok, vc não consegue fazer com que esta jsp:

<html>
O nome é "${param.nome}"
</html>

quando chamada assim

http://servidor:8080/xxx/teste.jsp?nome=Jacinto

Mostrar o nome Jacinto? Aparece em branco?
Ocorre alguma Exception ou mensagem de erro no console do servidor?

B

Exatamente, não consigo fazer com que mostre o nome Jacinto.

Aliás, não mostra absolutamente nada, fica em branco. Não dá null, não dá ${param.nome} como string, não dá exception…

peczenyj

Tenta adicionar estas tags (to chutando):

<jsp-property-group> <el-ignored>false</el-ignored> </jsp-property-group>

Rangel_Zutin

Ola pessoal. Ainda sou iniciante e estudando, estava tendo o mesmo problema com EL no Tomcat 6.0.18.

Consegui resolver fazendo a configuracao do arquivo web.xml conforme ja citado aqui, ou seja:

&lt;web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"&gt;

Verifiquei tambem se o jar el-api.jar nao estava duplicado na minha aplicacao, pois ele ja vem no pacote do Tomcat 6.0.18.

Gostaria de saber se voce conseguiu resolver o seu problema, e como, pois apesar de simples, demorei pra conseguir resolver o meu. Rsrsrs.

Obrigado!

Rangel_Zutin

Voce disse estar usando Struts tambem em sua aplicacao, e como vi que ja foi discutido a respeito de um tal arquivo .DTD achei relevante comentar.

Nao sei ate que ponto estarei falando besteira, mas no seu arquivo struts-config.xml voce deve ter uma configuracao que define que voce estara utilizando o aquivo DTD do proprio Struts e nao o da SUN.

No meu caso que estou usando Struts 1.3.10 estou configurando da seguinte maneira:

&lt;!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"&gt;

Me corrijam em relaçao a isso, e me expliquem em relacao a esse arquivo, por favor!

Abracos!

Criado 23 de janeiro de 2009
Ultima resposta 24 de jan. de 2009
Respostas 9
Participantes 4