Boa tarde !
Tenho uma rich:dataTable com um input type=“radio” com duas colunas, fora a do radio .
Preciso pegar os dados que se encontra nas colunas .
Alguém sabe me ajudar ?
Boa tarde !
Tenho uma rich:dataTable com um input type=“radio” com duas colunas, fora a do radio .
Preciso pegar os dados que se encontra nas colunas .
Alguém sabe me ajudar ?
Mas o que você gostaria de fazer?
Ao clicar no radio, pegar o valor da linha?
Isso, ao clicar no radio pegar o valor de duas colunas … não consigo nem ferrando cara :S
Mande o código da sua rich:dataTable para vermos.
É bem simples.
Segue minha dataTable
<rich:dataTable border="2" rowKeyVar="index" style="width: 500px;margin-left: 270px;margin-top: 20px;text-align: left;color: blue;"
value="#{funcionarioBean.funcionarioList}" var="funcionario" id="listarFunc1" rows="10">
<rich:column style="text-align: center;width: 40px;">
<h:outputText style="margin-top: 20px;text-align: center;" />
<h:outputText style="margin-top: 20px;text-align: center;" />
<f:verbatim>
<input type="radio" name="myRadio" id="myRadio" value="#funcionarioBean.funcionarioIndex}"/>
</h:inputHidden> --%>
</f:verbatim>
</rich:column>
<f:facet name="header">
<h:outputText style="text-align: center;" value="FUNCIONARIOS" />
</f:facet>
<rich:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Nome"
style="margin-top: 20px;text-align: center;" />
</f:facet>
<h:outputText style="text-align: center;color: black;"
value="#{funcionario.nome}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Ramal" style="text-align: center;" />
</f:facet>
<h:outputText style="text-align: center;color: black;"
value="#{funcionario.ramal}" />
</rich:column>
</rich:dataTable>
O que você pode fazer é, colocar um evento no onclick do radioButton:
<input type="radio" name="myRadio" id="myRadio" value="#{funcionarioBean.funcionarioIndex}">
<a4j:support
event="onclick"
actionListener="#{seuMB.seuMetodo}" />
</input>
e dentro do seu MB:
public void seuMetodo(ActionEvent evt) {
SeuBean bean = (SeuBean) getRequestMap().get("funcionario"); //onde funcionario é no valor que você colocou na propriedade var do dataTable
}
Dessa forma você tem o seu objeto Funcionário e pode trabalhar da maneira que quiser.
O que seria esse getRequestMap ? ele não reconhece, e nem deixa importar …
Esqueci de colocar a linha toda.
FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("funcionario");
Ele acusa, que não aceita o value do input .
por que será ?
Segue o erro .
org.apache.jasper.JasperException: /buscar.jsp(74,64) #{...} is not allowed in template text
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:102)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:728)
org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:954)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1789)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:216)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:365)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:342)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:414)
com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:455)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:139)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.8 logs.
eu tiro o value e do um system.out.print … no bean , ele vem null
[quote=vitaoDev]Ele acusa, que não aceita o value do input .
por que será ?
Segue o erro .
[code]
org.apache.jasper.JasperException: /buscar.jsp(74,64) #{…} is not allowed in template text
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:102)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:728)
org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:954)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1789)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:216)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:365)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:342)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:414)
com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:455)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:139)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.8 logs.
[/code][/quote]
Me mande como ficou sua dataTable.
Segue a dataTable e abaixo o bean !
<rich:dataTable border="2" rowKeyVar="index" style="width: 500px;margin-left: 270px;margin-top: 20px;text-align: left;color: blue;"
value="#{funcionarioBean.funcionarioList}" var="funcionario" id="listarFunc1" rows="10">
<rich:column style="text-align: center;width: 40px;">
<h:outputText style="margin-top: 20px;text-align: center;" />
<h:outputText style="margin-top: 20px;text-align: center;" />
<f:verbatim>
<input type="radio" name="myRadio" id="myRadio">
<a4j:support event="onclick" actionListener="#{funcionarioBean.excluir}" />
</input>
</f:verbatim>
</rich:column>
<f:facet name="header">
<h:outputText style="text-align: center;" value="FUNCIONARIOS" />
</f:facet>
<rich:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Nome"
style="margin-top: 20px;text-align: center;" />
</f:facet>
<h:outputText style="text-align: center;color: black;"
value="#{funcionario.nome}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Ramal" style="text-align: center;" />
</f:facet>
<h:outputText style="text-align: center;color: black;"
value="#{funcionario.ramal}" />
</rich:column>
</rich:dataTable>
bean
public String excluir(ActionEvent evt){
FuncionarioBean bean = (FuncionarioBean)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("funcionario");
System.out.println(bean);
Tente colocar o método com retorno void
com o value, continuo o erro … ai eu tirei o value novamente ele continua vindo null
o que será que pode ser ? :?
você colocou:
public void excluir(ActionEvent evt){ ...
aram, passei para void … e o import foi esse
import javax.faces.event.ActionEvent;