<h:form id="aform"> <p:growl id="debug-growl" showdetail="true" sticky="false" /> <p:inputtext id="expression" value="#{debug.expression}" required ="true" /> <p:commandbutton update="debug-growl" value="process" action="#{debug.myaction}" /> <h:outputtext value="source regular expression: #{debug.expression}" rendered="#{not empty debug.expression}" /> </h:form>
the bean
@managedbean @viewscoped public class debug implements serializable { private string expression; //getter & setter present
when enter value shows after submit in h:outputtext
element. if enter empty value (which wrong) in h:outputtext
element still present previous value.
how can hide 'h:outputtext' when no values submitted?
so see 2 issues above code.
your not updating h:outputtext on commandbutton click. need add id h:outputtext , add update command button
<p:commandbutton update="debug-growl sometext" value="process" action="#{debug.myaction}" /> <h:outputtext id = "sometext" value="source regular expression: #{debug.expression}" rendered="#{not empty debug.expression}" />
the required ="true" on inputtext not allowing empty value submitted server. h:outputtext never empty, therfore value rendered. fix this, validation on server.
jsf
remove required="true" tag
<p:inputtext id="expression" value="#{debug.expression}"/>
java
public void myaction(){ //check make sure inputtext isnt null/blank first if(stringutils.isblank(expression)) facescontext.getcurrentinstance().addmessage(null, new facesmessage("error", "must provide value")); else{ //business logic } }
Comments
Post a Comment