【发布时间】:2013-12-29 01:53:11
【问题描述】:
我遇到了 primefaces datagrid 的问题。我正在关注这个 example1,尝试在单击 p:commandLink 时使用所选值更新对话框。对话框不起作用,不显示。我在 GlassFish Server 4.0 上使用 primefaces-4.0。我已经用我的 bean 替换了 bean 及其方法。
这就是我所做的。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
>
<body>
<ui:composition template="./plantilla/plantillaPrincipal.xhtml">
<ui:define name="content">
<h:form id="form" class="well">
<h1>#{accionesController.tipo}</h1>
<p:dataGrid var="r" value="#{accionesController.lista}" columns="3"
rows="3" paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="3,6,9">
<p:panel header="#{r.title}" style="text-align:center">
<h:panelGrid columns="1" style="width:100%">
<p:graphicImage value="/img/libros/#{r.ubicacion}.jpg"/>
<h:outputText value="#{r.author}" />
<p:commandLink update=":form:carDetail" oncomplete="PF('carDialog').show()" title="View Detail">
<h:outputText styleClass="ui-icon ui-icon-search" style="margin:0 auto;" />
<f:setPropertyActionListener value="#{r}"
target="#{r.libroseleccionado}" />
</p:commandLink>
</h:panelGrid>
</p:panel>
</p:dataGrid>
<p:dialog header="Car Detail" id="carDialog" widgetVar="carDialog" modal="true">
<p:outputPanel id="carDetail" style="text-align:center;">
<p:graphicImage value="/img/libros/#{r.libroseleccionado.ubicacion}.jpg"/>
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="modelNo" value="Model No: " />
<h:outputText id="modelNo" value="#{r.libroseleccionado.author}" />
<h:outputLabel for="year" value="Year: " />
<h:outputText id="year" value="#{r.libroseleccionado.title}" />
</h:panelGrid>
</p:outputPanel>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</body>
</html>
我的豆子
@Component()
@ManagedBean
@RequestScoped
@ComponentScan("pe.egcc.eureka.app.layer.service")
public class AccionesController {
@Autowired
private AccionesService accionesService;
private List<Map<String, Object>> lista;
private String tipo;
private Books libroseleccionado;
public void setLibroseleccionado(Books libroseleccionado) {
this.libroseleccionado = libroseleccionado;
}
public Books getLibroseleccionado() {
return libroseleccionado;
}
public String getTipo() {
return tipo;
}
public List<Map<String, Object>> getLista() {
if (lista == null) {
lista = new ArrayList<Map<String, Object>>();
}
return lista;
}
public String consultarLibros() {
String destino;
lista = accionesService.listarLibros();
tipo="Todos los Libros";
destino = "listarLibros";
return destino;
}
public String consultarLibrosLiteratura() {
String destino;
tipo="Libros de Literatura";
lista = accionesService.listarLibrosLiteratura();
destino = "listarLibros";
return destino;
}
public String consultarLibrosInformatica() {
String destino;
tipo="Libros de Informática";
lista = accionesService.listarLibrosInformatica();
destino = "listarLibros";
return destino;
}
public String consultarArticulos() {
String destino;
tipo="Artículos Diversos";
lista = accionesService.listarArticulos();
destino = "listarLibros";
return destino;
}
}
如果有人能指出我正确的方向,那就太好了。很抱歉这篇文章很大,它需要一些解释才能使其连贯。希望这是有道理的。谢谢。
【问题讨论】:
标签: java jsf jsf-2 primefaces datagrid