p:dataTable中的p:commandLink不起作用

时间:2015-04-20 12:06:56

标签: jsf jsf-2 primefaces commandlink

我正在使用PrimeFaces 5.2并在我的网络应用中占有一席之地。我正在显示一个与每行对应的数据表。我正在给出一个编辑链接(<p:commandLink>)来编辑下一页上相应实体的字段,但该链接根本不起作用。这是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";
    }
}

当我将鼠标悬停在链接上时,浏览器底部的工具提示显示http://localhost:8080/JSF_1/view/viewTicket.xhtml#,“#”会附加到当前页面网址的末尾。单击时,它将保留在同一页面上。 我已经尝试将链接放在数据表之外,但也没有用。

1 个答案:

答案 0 :(得分:2)

您要对JSF / primefaces执行的commandLink或任何操作必须位于表单内。否则,不能执行HTTP Post。我建议在整个数据表中使用一种形式。否则,多行会有很多表单。

相关问题