PrimeFaces 데이터 테이블이 있습니다. 이 테이블의 각 행에 대해 사용자가 행 항목 (사용자)을 업데이트/삭제할 수있게하려고합니다.h : PrimeFaces 내에서 commandButton이 작동하지 않습니다. p : dataTable
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<link type="text/css" rel="stylesheet" href="themes/bluesky/skin.css" />
</h:head>
<h:body>
<center>
<h:form>
<p:panel id="viewUsersPanel" header="View Users">
<p:dataTable var="user" value="#{uController.users}"
emptyMessage="No Users Found.">
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{user.name}" />
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Postal Address" />
</f:facet>
<h:outputText value="#{user.address}" />
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Phone Number" />
</f:facet>
<h:outputText value="#{user.phone}" />
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Email Address" />
</f:facet>
<h:outputText value="#{user.email}" />
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="DOB" />
</f:facet>
<h:outputText value="#{user.dob}">
<f:convertDateTime pattern="dd-MMM-yyyy" />
</h:outputText>
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="No. Memberships" />
</f:facet>
<h:outputText value="#{user.numberOfMemberships}" />
</p:column>
<p:column style="text-align: center;">
<f:facet name="header">
<h:outputText value="Actions" />
</f:facet>
<h:commandButton value="Update" action="#{uController.update}" />
<h:commandButton value="Delete" action="#{uController.delete}" />
</p:column>
</p:dataTable>
<h:panelGrid columns="2" cellpadding="2" id="footerPanelGrid"
border="0">
<h:commandButton action="#{uController.home}" value="Home Page" />
</h:panelGrid>
</p:panel>
</h:form>
</center>
</h:body>
</html>
그러나 버튼이 작동하지 않습니다. 대신 그들은 단순히보기 페이지를 새로 고치는 것처럼 보입니다. 디버그에서 응용 프로그램을 실행하고 업데이트 또는 삭제 방법을 사용하지 않았습니다.
이것이 p : dataTable 내에서 h : commandButton을 사용하는 것으로 생각됩니다. 그러나, 나는 또한 p : commandButton을 시도했지만 아무 소용이 없습니다.
@ManagedBean(name="uController")
public class UserController extends AbstractController {
private Collection<User> users;
...
public String update() {
System.out.println("Ready for update");
return "update-user";
}
public String delete() {
System.out.println("Ready for delete");
return "delete-user";
}
...
}
action = "# {uController.update}"action = "# {uController.update()}"(업데이트 후 괄호로 묶음)로 변경해 보셨습니까? 나는 그것들이 없으면 작동 할 것이지만 JSF로 작업 한 후에는 놀랄 일이 아니다. ... –
@Zenzen 그냥 delete 메소드를 시도해 보았고 페이지가 처음으로로드 될 때 다음과 같은 오류가 발생했다. 'mypackage.UserController'클래스에 'delete'속성이 없습니다. – JamesB
FF를 Firebug, Chrome 또는 Firebug와 같은 디버깅 도구가있는 FF로 사용하고 있습니까? 단추 중 하나를 눌렀을 때 응답이 무엇인지 확인할 수 있습니까? 나는 PF와 비슷한 문제가 몇 번 있었을 뿐이며 페이지를 새로 고치지 않고 보낸 답안에 NullPointerExc가 있다는 것을 알고있다. –