p:dataTable 中的 p:commandLink 不起作用
A p:commandLink inside a p:dataTable does not work
我正在使用 PrimeFaces 5.2,并且在我的网络应用程序中的某个位置。我显示的数据 table 对应于每一行。我正在编辑 link (<p:commandLink>
) 以编辑下一页相应实体的字段,但 link 根本不起作用。这是 XHTML 内容。
<p:dataTable id="tickets" var="ticket"
value="#{ticketController.ticketModels}" paginator="true" rows="10"
filteredValue="#{ticketController.filteredTickets}">
<p:column headerText="Ticket Id" sortBy="#{ticket.ticketId}">
<p:commandLink action="viewDetailedTicket">
<h:outputText value=" #{ticket.ticketId}"></h:outputText>
</p:commandLink>
</p:column>
<p:column headerText="Summary" filterBy="#{ticket.summary}"
filterMatchMode="contains" sortBy="#{ticket.summary}">
<h:outputText value="#{ticket.summary}" />
</p:column>
<p:column headerText="Priority">
<h:outputText value="#{ticket.priority}" />
</p:column>
.
...............................
</p:dataTable>
以下是我的支持bean:
@ManagedBean
public class TicketController {
@ManagedProperty(value = "#{ticketpojo}")
private Ticket ticket;
private TicketDao tDao;
private TicketModel ticketModel;
public TicketModel getTicketModel() {
return ticketModel;
}
public void setTicketModel(TicketModel ticketModel) {
this.ticketModel = ticketModel;
}
public TicketController() {
tDao = new TicketDao();
}
public String viewDetailedTicket() {
ticketModel = tDao.getTicket(ticketId);
return "viewDetailedTicket";
}
}
当我将鼠标悬停在 link 上时,浏览器底部的工具提示显示 http://localhost:8080/JSF_1/view/viewTicket.xhtml#
,一个“#”被附加到当前页面的末尾 URL .单击时,它会保留在同一页面上。
我试过将 link 放在 data-table 之外,但也没有用。
commandLink 或您想用 JSF/primefaces 执行的任何操作必须在表单内。否则无法执行 HTTP Post。我建议对整个数据表使用一种形式。否则多行表格会很多
我正在使用 PrimeFaces 5.2,并且在我的网络应用程序中的某个位置。我显示的数据 table 对应于每一行。我正在编辑 link (<p:commandLink>
) 以编辑下一页相应实体的字段,但 link 根本不起作用。这是 XHTML 内容。
<p:dataTable id="tickets" var="ticket"
value="#{ticketController.ticketModels}" paginator="true" rows="10"
filteredValue="#{ticketController.filteredTickets}">
<p:column headerText="Ticket Id" sortBy="#{ticket.ticketId}">
<p:commandLink action="viewDetailedTicket">
<h:outputText value=" #{ticket.ticketId}"></h:outputText>
</p:commandLink>
</p:column>
<p:column headerText="Summary" filterBy="#{ticket.summary}"
filterMatchMode="contains" sortBy="#{ticket.summary}">
<h:outputText value="#{ticket.summary}" />
</p:column>
<p:column headerText="Priority">
<h:outputText value="#{ticket.priority}" />
</p:column>
.
...............................
</p:dataTable>
以下是我的支持bean:
@ManagedBean
public class TicketController {
@ManagedProperty(value = "#{ticketpojo}")
private Ticket ticket;
private TicketDao tDao;
private TicketModel ticketModel;
public TicketModel getTicketModel() {
return ticketModel;
}
public void setTicketModel(TicketModel ticketModel) {
this.ticketModel = ticketModel;
}
public TicketController() {
tDao = new TicketDao();
}
public String viewDetailedTicket() {
ticketModel = tDao.getTicket(ticketId);
return "viewDetailedTicket";
}
}
当我将鼠标悬停在 link 上时,浏览器底部的工具提示显示 http://localhost:8080/JSF_1/view/viewTicket.xhtml#
,一个“#”被附加到当前页面的末尾 URL .单击时,它会保留在同一页面上。
我试过将 link 放在 data-table 之外,但也没有用。
commandLink 或您想用 JSF/primefaces 执行的任何操作必须在表单内。否则无法执行 HTTP Post。我建议对整个数据表使用一种形式。否则多行表格会很多