I think you are expecting wrong thing. h:outputText is used for single line formated text. The value attribute of h:outputText expects there should be a property in your backing bean which maps the value attribute/property(in your case this welcome property) that is defined on JSF page. when page is loaded, getter method for the welcome property is called to display output text .
So you need add one property i.e. welcome and getter method for this. If you want to initialize it you can use @postconstruct anotation.
But in the long run (if you continue to make more complex applications etc) you should do as bajrang asthana suggested and set the values once and use the from there on (using the @postconstruct or some other way). It is not very efficient to always run the for loop (or do any other kind of complex logic) in the setters/getters since internally JSF may call the setters and getters multiple times during the execution. I have seen this behaviour when I have put logging inside a getter (or setter) and a getter may be called as many as ten times altough the value is used only once on page. I do not know the reason for that but since getters/setters should not contain complex logic the multiple calls do not affect performance normally.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop