2014-11-08 34 views
-1

以下基於JSF的xhtml頁面的命令按鈕的actionListener事件不起作用。我在頁面上沒有任何驗證。該事件僅適用於將屬性process="@this"添加到按鈕標記。由於沒有驗證,所以我甚至沒有任何驗證錯誤。但是通過進程屬性,我得到了由java方處理程序方法返回的成功消息。所以我有點卡住沒有不必要的進程屬性。JSF頁面 - 爲什麼不驗證任何驗證過程屬性?

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:c="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 

<h:head> 

</h:head> 

<h:body style="margin:0 auto !important;width:80% !important;"> 
<h:form id="form1"> 
    <p:panel id="rootPanel" 
     style="background-color:#E8E8E8 ;width=90%;padding:10px;margin:10px;border:2px solid black;"> 
     <p:panel id="logoHeaderPanel" 
      style="background-color:#E8E8E8 ;width=70%;padding:30px;margin:30px;border:1px solid black;"> 
      <h:panelGrid columns="2"> 
       <h:graphicImage library="images" name="./headerImage.gif" /> 
       <h:outputLabel style="font-size:2.1em;margin-left:30px" 
        value="Demo App" /> 
      </h:panelGrid> 
     </p:panel> 
      <p:messages id="messages" autoUpdate="true"/> 
     <p:panel id="mainContentPanel" 
      style="background-color:#E8E8E8 ;width=70%;padding:60px;margin:30px;border:1px solid black;"> 
      <h:panelGrid columns="4"> 
       <h:outputLabel for="a" value="State Search" style="margin:10px;" /> 
       <p:inputText id="a" value="" style="margin:10px;" /> 
       <h:outputLabel for="b" value="Value" style="margin:10px;" /> 
       <p:inputText id="b" value="" style="margin:10px;" /> 

       <h:outputLabel for="c" value="City Search" style="margin:10px;" /> 
       <p:inputText id="c" value="" style="margin:10px;" /> 
       <h:outputLabel for="d" value="Value" style="margin:10px;" /> 
       <p:inputText id="d" value="" style="margin:10px;" /> 
      </h:panelGrid> 
      <h:panelGrid columns="2" style="float:right;"> 
       <p:commandButton style="height:80px;" value="Generate Report" 
          id="reporting" actionListener="#{sampleBean.handlerMethod}" update="a"/> 
      </h:panelGrid> 
     </p:panel> 
    </p:panel> 
    </h:form> 
</h:body> 
</html> 

的Java端代碼

public void handlerMethod(ActionEvent actionEvent) { 
     System.out.println("Inside Listener"); 
     FacesContext.getCurrentInstance().addMessage(
       null, 
       new FacesMessage("Success! Action called.")); 
} 

回答

1

你不能在p:inputText使用value=""。如果您不想指定值,則應刪除屬性value=""

<p:inputText id="a" style="margin:10px;" />