facelets - Adding message to faceContext is not working in Java EE7 run on glassFish? -



facelets - Adding message to faceContext is not working in Java EE7 run on glassFish? -

i doing tutorial on java ee7 comes glassfish installation. available here. code nowadays in glassfish server installation directory

/glassfish_installation/glassfish4/docs/javaee-tutorial/examples/cdi/guessnumber-cdi.

the code works fine is. displays correct! when user correctly guesses number not display failed @ end of game. introduced, 1 minor alter display failed message. have added comments right above relevant alter in code.

somehow, alter did not help. is, @ end of game, failed message not displayed. game works usual. know why did not work , how right it?

thanks

public class usernumberbean implements serializable { private static final long serialversionuid = -7698506329160109476l; private int number; private integer usernumber; private int minimum; private int remainingguesses; @inject @maxnumber private int maxnumber; private int maximum; @inject @random instance<integer> randomint; public usernumberbean() { } public int getnumber() { homecoming number; } public void setusernumber(integer user_number) { usernumber = user_number; } public integer getusernumber() { homecoming usernumber; } public int getmaximum() { homecoming (this.maximum); } public void setmaximum(int maximum) { this.maximum = maximum; } public int getminimum() { homecoming (this.minimum); } public void setminimum(int minimum) { this.minimum = minimum; } public int getremainingguesses() { homecoming remainingguesses; } public string check() throws interruptedexception { if (usernumber > number) { maximum = usernumber - 1; } if (usernumber < number) { minimum = usernumber + 1; } if (usernumber == number) { facescontext.getcurrentinstance().addmessage(null, new facesmessage("correct!")); } //if remainingguesses less or equal zero, display failed message //----------------------------------------------- if (remainingguesses-- <= 0) { facescontext.getcurrentinstance().addmessage(null, new facesmessage("failed ")); } homecoming null; } @postconstruct public void reset() { this.minimum = 0; this.usernumber = 0; this.remainingguesses = 10; this.maximum = maxnumber; this.number = randomint.get(); } public void validatenumberrange(facescontext context, uicomponent tovalidate, object value) { int input = (integer) value; if (input < minimum || input > maximum) { ((uiinput) tovalidate).setvalid(false); facesmessage message = new facesmessage("invalid guess"); context.addmessage(tovalidate.getclientid(context), message); } } }

adding facesmessage working, problem using postdecrement in condition.

postdecrement, name suggests, decremented after execution of statement containing postdecrement.

that means, if write:

if (remainingguesses-- <= 0) {

the var remainingguesses decremented after if-condition evaluated.

in case, when lastly guess checked, remainingguesses 1 , hence if-condition not true , message not added.

different obvious solutions:

if (remainingguesses-- <= 1) { facescontext.getcurrentinstance().addmessage(null, new facesmessage("failed ")); }

or

if (--remainingguesses <= 0) { facescontext.getcurrentinstance().addmessage(null, new facesmessage("failed ")); }

or

remainingguesses--; if (remainingguesses <= 0) { facescontext.getcurrentinstance().addmessage(null, new facesmessage("failed ")); }

see also:

is there difference between x++ , ++x in java? difference between i++ , ++i in loop?

glassfish facelets managed-bean java-ee-7 facescontext

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -