If de igual nao funciona no JSTL

pessoal pq isto nao funciona?

	<h:panelGrid columns="2" cellspacing="5" border="0">        			
	<ui:repeat var="idx" value="#{clienteBean.lindex}">	
	<br />
		<c:if test="${idx.tipo eq STR}" >
			<h:outputText value="#{idx.tipo}" />
		</c:if>
	</ui:repeat>

	</h:panelGrid>

o que estou fazendo de errado?

abç

STR é o que?

drsmachado vou explicar o meu problema derrepende vc me dar uma solução e eu nao tenho que voltar ao scriptlet :frowning:
bom eu tenho uma tabela chamada campo e outro chamada combo, dentro da campo tenho um atributo que é o tipo de campo, que pode ser CMB para combo STR para String e DAT para data e assim vai, na tabela de combo eu tenho o itens do combo associando com o tipo, deu pra entender??

entou precisando criar estes campo dinamicamente na tela, eu consegui com o datagrid mais pelo jeito ele nao me retorna a lista pro meu manager bean, pq nao consegui pegar os valores digitados, agora estou usando o repeat tb não sei se fuinciona, outra alternativa que achei seria gerar estes componetes no manager bean mais nao tenho conhecimento tão afundo no JSF pra isso… entao o que vc me aconselha??

codigo antigo usando dataGrid:

<h:form>
<p:growl id="msgs" showDetail="true" />  
	<p:panel header="Indexadores" style="margin-bottom:10px;height:auto;width:600px;" rendered="true"> 
		<p:dataGrid value="#{clienteBean.lindex}" var="index" columns="1" widgetVar="lindex">
			<p:column>
				<h:panelGrid columns="5" cellspacing="5" border="0"> 
	       			<h:outputLabel value="#{index.label}: " rendered="true" />
	       			
	       			<p:inputText value="#{index.textInput}" rendered="#{index.isinput}" >
	       			<f:param name="id" value="#{index}" />
	       			</p:inputText>
	       			<p:inputTextarea value="#{index.txtArea}" rendered="#{index.istxt}" style="width:300px" />
	       			<p:inputText value="#{index.textInput}" rendered="#{index.isnum}" />
	       			<h:panelGroup>
		       			<p:calendar rendered="#{index.isdat}"  style="width:10px;" />
		       			<h:outputLabel value="até: " rendered="#{index.isdat}" />
		       			<p:calendar rendered="#{index.isdat}"   style="width:10px;"/>
	       			</h:panelGroup>
		       		<p:selectOneMenu rendered="#{index.iscombo}" >  
		                 <f:selectItems value="#{index.lcombo}" var="combo" itemLabel="#{combo.opcao}" itemValue="#{combo.id}" /> 
		             </p:selectOneMenu>
		             
		             
		             
				</h:panelGrid>
			</p:column>
		</p:dataGrid>
		<br />
		<p:commandButton type="Submit" value="salvar" ajax="false" action="#{ClienteBean.salvarIndexadores}" oncomplete="carDialog.show()" />
		<p:dialog header="Car Detail" widgetVar="carDialog" resizable="false" draggable="false"  
              width="200" showEffect="fade" hideEffect="fade" modal="true" >  
		</p:dialog>
	</p:panel>
</h:form>
no managerbean:

	public void salvarIndexadores(){
				
		List<Indexador> index = getLindex();
		
		for(Indexador idx: index){
					
			System.out.println(idx.getLabel());
			System.out.println(idx.getTextInput());
		}
	}

estava tendando resgatar desse jeito a lista mais ela vem nula :frowning:

so mais uma pergunta o if do JSTL nao funciona bem com o JSF??
nao consegui fazer ele funcionar

cara desculpa o texto gigante mais estou ficando loou com isso e nao consigo resolver.

aguardo seu retorno e obrigado.

abç!!

Ele funciona.
Acontece que isso

<c:if test="${idx.tipo eq STR}" > 

Não funciona em lugar algum.
STR, DAT ou CMB devem estar guarnecidos por aspas simples, para que faça sentido ao JSTL a comparação.
Isto

<c:if test="${idx.tipo eq 'STR'}" > 

deveria funcionar.

Outra solução seria deixar os campos criados na xhtml e, através da propriedade rendered, definir se o mesmo poderá ser renderizado ou não. Porém, isto tornaria a tua xhtml muito extensa.

o problema é que eu posso ter o mesmo input varias vezes… entao o valeu dele seria igual e eu pagaria o ultimo, o que eu queria é saber se tem como eu pegar a lista que foi iterada no dataGrid no meu managerbean e se sim como eu faço isso…

sobre o if eu coloquei com aspa simples tb e nao funcionou…

obrigado pela atenção

abç