Vraptor + JSTL

9 respostas
macspace

Olá pessoal,
tenho uma lógica em meu sistema que possui o seguinte paramêtro:

@Out(scope=ScopeType.SESSION)
	@In(scope=ScopeType.SESSION, required=false)
	private boolean lastPage;

e preciso fazer um teste dentro do meu JSP para validar se o paramêtro lastPage é ou não verdadeiro, tentei fazer da seguinte forma:

<c:if test="${lastPage == true}">Você esta na última página!!!!</c:if>

o problema é o teste está sempre dando verdadeiro… já coloquei o paramêtro para ser mostrado na página e ele esta como false

estou mostrando ele da seguinte

<h2>${lastPage}</h2>

alguém sabe me dizer onde estou errando ???

9 Respostas

Cherubini

Fala ai!!

tipo vc nao teria q acessar esse [b] lastPage [/] com o nome da logic sem o logic ! rs

tipo assim

tenho minha logic assim:

@Component("teste")
public class TesteLogic{

}

vc nao teria q acessar na sua view q esta dentro da pasta teste desse jeito:

<c:if test="${teste.lastPage == true}">Você esta na última página!!!!</c:if>
T

Cherubini:
Fala ai!!

tipo vc nao teria q acessar esse [b] lastPage [/] com o nome da logic sem o logic ! rs

tipo assim

tenho minha logic assim:

@Component("teste")
public class TesteLogic{

}

vc nao teria q acessar na sua view q esta dentro da pasta teste desse jeito:

<c:if test="${teste.lastPage == true}">Você esta na última página!!!!</c:if>

Cherubini, não entendi, vc ta fazendo pgta ou afirmando “vc nao teria q acessar na sua view q esta dentro da pasta teste desse jeito”??

cara, seria legal vc postar um pouco da sua lógica, mas vamos tentar…tenta tirar o @Out(scope=ScopeType.SESSION) de onde vc colocou e coloca no get desse atributo assim:

@Out(scope=ScopeType.SESSION)
public boolean getLastPage(){
       return lastPage;
}
Cherubini

amigão oq eu to querendo dizer é isso

<select name="processo.cliente.id" class="cmb">			
  <option value="0">[ Selecione ]</option>
  <c:forEach var="cliente" items="${clientes}">					
      <option value="${cliente.id}"<c:if test="${processo.cliente.id eq(cliente.id)}">selected</c:if>>${cliente.nome}</option>	
  </c:forEach>
</select>

eu acesso no “if” o nome do meu component q defini na classe “.” o atributo dela ai sim eu consigo testar!!!

<c:if test="${processo.cliente.id eq(cliente.id)}">selected</c:if>

espero ter ajudado agora!!!

T

não necessariamente, se vc executou um Logic e vc tem o Get desse atributo, vc não precisa colocar o ${Component.Atributo}, porque ele vai para o request, pode somente colocar ${Atributo}

Cherubini

legal !!Só usei do outro jeito! eu não coloquei só o atributo, faço isso só com objeto
ai estou acostumado a chamar assim:

@Component("processo")
@InterceptedBy( { AutorizadorInterceptor.class, DaoInterceptor.class })
public class ProcessoLogic {

	private final FactoryDao daoFactory;

	@Out
	private List<Cliente> clientes;
}

e na view:

<select name="processo.cliente.id" class="cmb">             
  <option value="0">[ Selecione ]</option>   
  <c:forEach var="cliente" items="${clientes}">                     
      <option value="${cliente.id}"<c:if test="${processo.cliente.id eq(cliente.id)}">selected</c:if>>${cliente.nome}</option>     
  </c:forEach>   
</select>

Mais sussa!! aprendi essa ! xD

ajuda o cara ai, e fala pq não ta conseguindo comparar então!!^^

vlws

Cherubini

ow Thiago + para ele acessar o atributo direto na pagina
não faltou o “@Parameter” no atributo ?

só para eu saber ?

vlws

T

depende, se ele vai pegar o conteúdo do Logic na página, pode usar JSTL (${ }), porém se o for enviar da página pro Logic ai vc tem que usar o @Parameter. Assim:

<a href="Component.nomemetodo.logic?id=2">Clique aqui para enviar o Id para o Logic</a>
// recebe o ID vindo da página
public void nomemetodo(@Parameter(key="id") int id){

}
Cherubini

Hmm tendi!!

vlws

macspace

Agora deu certo, no meu caso eu havia esquecido de por:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

no cabeçalho do JSP!!!

Valeu pelas respostas pessoal!!!

Criado 19 de agosto de 2009
Ultima resposta 21 de ago. de 2009
Respostas 9
Participantes 3