Problema com EL no OC4J

Amigos, bom dia,

Desenvolvi uma pagina jsp na minha maquina local rodando tomcat, mas quando fui subir ela para o servidor OC4J 9.0.4 as EL não estão sendo compiladas, por exemplo se eu vir a EL ${pessoa.nome} no browser vai aparecer “${pessoa.nome}” como se fosse um texto do html.

Abaixo segue o código do jsp que criei.
Obs. ontem depois de muita pesquisa descobri que o import das jstl no oc4j era diferente do tomcat, este problema eu consegui resolver agora o da EL não to achando nada que me ajude.

<%@page import="java.util.*" session="true"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>

<%@ include file="i_global.jsp"%>

<html>
   <body>
            <form method="POST" action="RelatorioIntervaloEntreJornada?ticket=<%=sessaoUsuarioTopo.getSessaoId()%>">
               <select name="idSemestre">  
                  <c:forEach var="semestre" items="${ComboSemestre}">
                    <option value="${semestre.detalhamentoDataId}"
                    	<c:if test="${semestre.detalhamentoDataId == detalhamentoSelecionado.detalhamentoDataId}">  
							selected
						</c:if>
                     >
                    	${semestre.observacao}
                    </option>
                  </c:forEach>  
               </select>  
               
               <input type="submit" value="Pesquisar" />
            </form>     
   </body>
</html>

Faça esta alteração:

${ComboSemestre} =>> ${requestScope.ComboSemestre}
se o escopo for request, ou:

${ComboSemestre} =>> ${sessionScope.ComboSemestre}
se o escopo for sessão.

Você já pensou em um upgrade para a versão 10.1.3.3 do OC4J?

O OC4J é JEE versão 4 ou superior pelo menos, para usar EL você tem de usar a versão 2.0 ou superior de JSP.

Tenta colocar:
<%@page isELIgnored=“false”%>

ou adicionar no web.xml:

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>

E certifique-se que o cabeçalho do seu web.xml está declarado para utilizar JEE 1.4

Biro, bom dia,

Estou utilizando o scopo de request, fiz a alteração e não surtiu efeito.

Quanto a atualizar o servidor esta fora do meu alcance esta decisão.

A impressão que tenho é que o jsp não esta interpretando a EL.

[quote=Rafael Nunes]O OC4J é JEE versão 4 ou superior pelo menos, para usar EL você tem de usar a versão 2.0 ou superior de JSP.

Tenta colocar:
<%@page isELIgnored=“false”%>

ou adicionar no web.xml:

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>

Rafael, bom dia,

Apenas para registrar este server esta com java 1.4, ontem eu achei esta solução mas quando fui colocar no jsp deu o erro:
OracleJSP: oracle.jsp.parse.JspParseException: Número da Linha 2, <%@page isELIgnored=“false”%>
Erro: Atributo inválido: isELIgnored

Quando tentei colocar no web.xml, a aplicação toda parou.

E certifique-se que o cabeçalho do seu web.xml está declarado para utilizar JEE 1.4[/quote]

Você está utilizando especificação 2.3 de servlet?
A versão do JSTL que você está usando é o 1.0?

Acredito que as EL’s nesta versão do OC4J devem ser utilizadas apenas dentro das tags JSTL, e não como você fez para observação(${semestre.observacao}). Em vez disto coloque-a dentro de uma tag out (<c:out value="${semestre.observacao}"/>).

Espero que funcione… ^^

Posta ai também o cabeçalho do seu web.xml

cabeçalho web.xml

[code]<?xml version="1.0" encoding="ISO-8859-1"?>

[/code]

Acabei de receber a resposta da infra de empresa informando que a versão do jsp é 1.2.

Se isto for pré requisito para a EL acho que estou na roça.

Caso não seja possível vocês teria um exemplo de como posso montar este código sem EL?

Sim… esta versão do OC4J implementa a versão 1.2 do JSP, mas é possível sim utilizar EL.

estranho que no site
http://www.deakin.edu.au/its/dba/oracle-doco/9.0.4.1/9.0.4_doc_library/web.904/b10319/ovwtagut.htm#1008456

descreve a implementação da EL nesta versão do OC4J

[quote=biro]Você está utilizando especificação 2.3 de servlet?
A versão do JSTL que você está usando é o 1.0?

Acredito que as EL’s nesta versão do OC4J devem ser utilizadas apenas dentro das tags JSTL, e não como você fez para observação(${semestre.observacao}). Em vez disto coloque-a dentro de uma tag out (<c:out value="${semestre.observacao}"/>).

Espero que funcione… ^^[/quote]

eu tinha passado batido por esta resposta, mas eu ja havia testado esta opção.

O problema é que nem na linha <c:forEach var=“semestre” items="${ComboSemestre}"> ele esta entendendo a lista, pois se ele tivesse interpretado eu teria varias impressões do ${…} mas no caso atual tenho apenas um impressão quando deveria ter 6

EL só foi incorporada no JSP 2.0, em 1.2 creio que não vai conseguir utilizar mesmo, só dentro do JSTL.

Tenta na hora da impressão fazer ao invés de ${pessoa.nome}, faça <c:out value="${pessoa.nome}"/>

[quote=Rafael Nunes]EL só foi incorporada no JSP 2.0, em 1.2 creio que não vai conseguir utilizar mesmo, só dentro do JSTL.

Tenta na hora da impressão fazer ao invés de ${pessoa.nome}, faça <c:out value="${pessoa.nome}"/> [/quote]

eu tentei desta forma também não rolou.

Um fato importante é que minha lista retorna 6 objetos, mesmo que eu não colocasse nenhuma EL no option, colocasse algo como “teste”, ao executar o jsp deveria vir 6 testes, mas só vem 1.