jsf - h:inputText value is null in action method -
container glassfish.
the jsf page setting message #{senderbean.messagetext}
, <h:messages/>
output null messagetext
property.
<?xml version='1.0' encoding='utf-8' ?> <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>message sender</title> </h:head> <h:body> <h:form> <h2>type message in message text field</h2> <h:outputlabel for="messagetext" value="message text:"/> <h:inputtext id="messagetext" title="message text" value="#{senderbean.messagetext}" required="true" requiredmessage="error: message text id required" maxlength="128" size="32"/> <br/> <h:commandbutton value="send message" action="#{senderbean.sendjmsmessagetomyqueue}"/> <h:commandbutton value="go receive page" action="receiver" /> <p> <h:outputtext value="message text below: "/> </p> <div> <h:messages/> </div> </h:form> </h:body> </html>
my jsf backing bean, don't see wrong it.
import javax.annotation.resource; import javax.faces.application.facesmessage; import javax.faces.bean.requestscoped; import javax.faces.context.facescontext; import javax.inject.inject; import javax.inject.named; import javax.jms.jmsconnectionfactory; import javax.jms.jmscontext; import javax.jms.queue; @named @requestscoped public class senderbean { @inject @jmsconnectionfactory(value ="java:comp/defaultjmsconnectionfactory") private jmscontext context; @resource(mappedname="jms/myqueue") private queue queue; private string messagetext; public senderbean() { } public string getmessagetext() { return messagetext; } public void setmessagetext(string messagetext) { this.messagetext = messagetext; } public void sendjmsmessagetomyqueue() { string text = "message form producer: " + messagetext; context.createproducer().send(queue, text); facesmessage facesmessage = new facesmessagez(text); facescontext.getcurrentinstance().addmessage(null, facesmessage); // add messagetext property ouput in <h:messages/> in jsf page, messagetext null. } }
Comments
Post a Comment