Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

The command button's actionListener event of the following JSF based xhtml page does not work. I do not have any validations on the page. The event only works when I add attribute process="@this" to button tag. As there are no validations, so I do not even get any validation error. But with process attribute I get success message returned by java side handler method. So I am kind of stuck without unwanted process attribute.

<?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 side code

public void handlerMethod(ActionEvent actionEvent) {
        System.out.println("Inside Listener");
        FacesContext.getCurrentInstance().addMessage(
                null,
                new FacesMessage("Success! Action called."));
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
164 views
Welcome To Ask or Share your Answers For Others

1 Answer

You cannot use value="" in the p:inputText. If you do not want to specify value, you should remove attribute value="".

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...