我是JSF的新手,我有一个带有单选按钮的<p:dataTable>
,我想选择一个单选按钮然后按<p:commandButton>
然后我会转到其他页面我希望看到选择信息。
的index.xhtml
<h:form id="form">
<p:dataTable id="radioDT"
var="emp"
value="#{empresaBean.getEmpresaList()}"
selection="#{empresaBean.selectedEmpresa}"
rowKey="#{emp.CLAVE}">
<f:facet name="header">
Lista de Empresas
</f:facet>
<p:column selectionMode="single" style="width:16px;text-align:center"/>
<p:column headerText="Id">
<h:outputText value="#{emp.CLAVE}" />
</p:column>
<p:column headerText="Nombre Empresa">
<h:outputText value="#{emp.NOMBRE}" />
</p:column>
<p:column headerText="AÑO">
<h:outputText value="#{emp.EJERCICIO}" />
</p:column>
<f:facet name="footer">
<p:commandButton action="#{empresaBean.View}" value="Seleccionar" title="Ir Menu" rowKey="#{emp.CLAVE}" >
<f:setPropertyActionListener target="#{empresaBean.empresa}" value="#{empresaBean.selectedEmpresa}" />
</p:commandButton>
EmpresaBean.java
@ManagedBean(name="empresaBean")
@ViewScoped
@Component
public class EmpresaBean {
@Autowired
private EmpresaService empresaService;
private Empresa empresa;
private Empresa selectedEmpresa;
private DataModel model;
public EmpresaService getEmpresaService() {
return empresaService;
}
public Empresa getSelectedEmpresa() {
return selectedEmpresa;
}
public void setSelectedEmpresa(Empresa selectedEmpresa) {
this.selectedEmpresa = selectedEmpresa;
}
public void setEmpresaService(EmpresaService empresaService) {
this.empresaService = empresaService;
}
public EmpresaBean(){}
public List<Empresa> getEmpresaList(){
return empresaService.getAll();
}
public Empresa getEmpresa() {
return empresa;
}
public void setEmpresa(Empresa empresa) {
this.empresa = empresa;
}
public String View() {
// empresa = (Empresa) model.getRowData();
return "/pages/menu/menuPrincipal?faces-redirect=true";
}
}
menuPrincipal.xhtml(ouput)
<h:head>
<title>Menu Principal</title>
</h:head>
<h:body>
<h:form>
<h:outputText value="#{empresaBean.empresa}" />
#{empresaBean.empresa}
<h:outputText value="#{empresaBean.selectedEmpresa}" />
#{empresaBean.selectedEmpresa}
当我转到menuPrincipal
时,我看到了这一点。
com.atorresbr.springapp.model.Empresa@5ea928
但我希望看到
Clave: 123
Nombre: John
Año:2014 by example.
答案 0 :(得分:1)
你看到的是在你的对象上调用的toString()方法的输出,看你所描述的输出覆盖toString()方法,在你的Empressa类中添加如下方法,设置属性名称我只是从你的小脸猜测
@Override
public String toString() {
return "Empressa{" +
"CLAVE='" + CLAVE + '\'' +
", NOMBRE='" + NOMBRE + '\'' +
", AÑO='" + ANO + '\'' +
'}';
}
一个可以有用的示例http://www.geeksforgeeks.org/overriding-tostring-method-in-java/
答案 1 :(得分:0)
因为您的empresaBean.empresa不包含文本。这是课堂。 h:outputText仅显示文本值。