Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf p:dataTable中的p:commandLink不起作用_Jsf_Jsf 2_Primefaces_Commandlink - Fatal编程技术网

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

Jsf p:dataTable中的p:commandLink不起作用,jsf,jsf-2,primefaces,commandlink,Jsf,Jsf 2,Primefaces,Commandlink,我正在使用PrimeFaces 5.2,并且在我的web应用程序中的某个位置。我正在显示一个对应于每一行的数据表。我提供了一个编辑链接()来编辑下一页上相应实体的字段,但该链接根本不起作用。下面是XHTML内容 <p:dataTable id="tickets" var="ticket" value="#{ticketController.ticketModels}" paginator="true" rows="10" filteredValue="#{t

我正在使用PrimeFaces 5.2,并且在我的web应用程序中的某个位置。我正在显示一个对应于每一行的数据表。我提供了一个编辑链接(
)来编辑下一页上相应实体的字段,但该链接根本不起作用。下面是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>
当我将鼠标悬停在链接上时,浏览器底部的工具提示将显示
http://localhost:8080/JSF_1/view/viewTicket.xhtml#
,在当前页面URL的末尾追加一个“#”。单击时,它将保持在同一页面上。
我曾尝试将链接放在数据表之外,但也不起作用。

commandLink或您希望使用JSF/primefaces执行的任何操作必须在表单内部。否则,无法执行HTTP Post。我建议对整个数据表使用一个表单。否则,多行将有很多表单。

那是h:form中的datatable还是commandLink?不,是它的外部@GregDyes现在成功了,谢谢@GregD@AlokMishra那么请接受答案
@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";
    }
}