myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Robinson" <andrew.rw.robin...@gmail.com>
Subject Re: JSF Value-Binding to Model Object doesnt work
Date Mon, 21 Apr 2008 17:38:58 GMT
what do your registrations look like for your two beans in your
faces-config.xml? Have you tried using EL to obtain the reference to
fqdnBean?

As far as ui:composition I usually have 1 template for my pages with
the HTML and BODY and then use ui:composition for everything else:

template.xhtml:
<html><body>...</body></html>

page1.xhtml:
<html><body><ui:composition
template="/template.xhtml">...</ui:composition></body></html>

included1.xhtml:
<html><body><ui:composition>...</ui:composition></body></html>

-Andrew

On Mon, Apr 21, 2008 at 11:33 AM, bansi <mail2bansi@yahoo.com> wrote:
>
>  Hi Andrew
>  Thanks for quick response.
>  I tried using managed property but it still returns null.
>  I do have <ui:composition> in my code but what i was wondering is when i use
>  <ui:include> to include another xhtml file, if i dont have <html> and <body>
>  tags in this xhtml file then how can i use jsf tags to build my page.
>  Here is the snippet of my included xhtml file
>  <?xml version="1.0" encoding="UTF-8"?>
>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
>  <html xmlns="http://www.w3.org/1999/xhtml"
>         xmlns:ui="http://java.sun.com/jsf/facelets"
>         xmlns:h="http://java.sun.com/jsf/html"
>         xmlns:f="http://java.sun.com/jsf/core"
>         xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
>       xmlns:s="http://myfaces.apache.org/sandbox"
>       xmlns:t="http://myfaces.apache.org/tomahawk"
>       xmlns:c="http://java.sun.com/jstl/core"
>       >
>
>                         <t:saveState value="#{fqdnBean.fqdn}"/>
>                                 <h:outputLabel><h:outputText  value="Host Name"
/><h:outputText
>  style="color: #DD0707" value=" *  "/></h:outputLabel>
>
>                                  <h:inputText  id="hostName" value="#{fqdnBean.fqdn.name}"
style="width:
>  230px"
>                                                 styleClass="required max-63" >
>                                  </h:inputText>
>                          </h:panelGrid>
>
>
>
>
>
>
>
>
>  Andrew Robinson-5 wrote:
>  >
>  > See my reply on the facelets list. You should not be referencing the
>  > request context to get a managed bean instance. Either use a managed
>  > property, or build an EL expression (or binding for 1.1) and obtain it
>  > that way.
>  >
>  > Beans are lazy loaded and thus should be obtained through the proper API.
>  >
>  > If you are using facelets, why is there a f:view in your code and why
>  > are you not using ui:composition to make sure you do not have 2 BODY
>  > tags?
>  >
>  > On Sun, Apr 20, 2008 at 6:59 PM, bansi <mail2bansi@yahoo.com> wrote:
>  >>
>  >>  I also tried injecting FqdnBean into DeviceBean and then access model
>  >> object
>  >>  of FqdnBean i.e. Fqdn into DeviceBean as
>  >>  Fqdn fqdnVO = fqdnBean.getFqdn();
>  >>  Result:
>  >>  It returns null
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>  bansi wrote:
>  >>  >
>  >>  > Here is the code sample
>  >>  >
>  >>  > <html>
>  >>  >
>  >>  > <body>
>  >>  >
>  >>  > <f:view>
>  >>  >
>  >>  > <h:form id="updateDeviceForm">
>  >>  >
>  >>  > <h:panelGrid>
>  >>  >
>  >>  > ..........
>  >>  >
>  >>  > ..........
>  >>  >
>  >>  > <h:inputText id="deviceName" value="#{deviceBean.name}" style="width:
>  >>  > 230px"
>  >>  >
>  >>  > styleClass="required max-63" >
>  >>  >
>  >>  >
>  >>  > </h:panelGrid>
>  >>  >
>  >>  >
>  >>  >
>  >>  > <h:panelGrid>
>  >>  >
>  >>  > <ui:include src="fqdnForm.xhtml"></ui:include>
>  >>  >
>  >>  > </h:panelGrid>
>  >>  >
>  >>  > </f:view>
>  >>  >
>  >>  > </body>
>  >>  >
>  >>  > </html>
>  >>  >
>  >>  >
>  >>  >
>  >>  > Here is the snippet of fqdnForm.xhmtl which has value binding of name
>  >> form
>  >>  > field to model object Fqdn
>  >>  >
>  >>  >
>  >>  >
>  >>  > <body>
>  >>  >
>  >>  > <h:panelGrid columns="3" styleClass="detail" columnClasses="label">
>  >>  >
>  >>  > <h:inputText id="hostName" value="#{fqdnBean.fqdn. name}"
>  >> style="width:
>  >>  > 230px"
>  >>  >
>  >>  > styleClass="required max-63" >
>  >>  >
>  >>  > </h:inputText>
>  >>  >
>  >>  > <h:inputHidden id="fqdnHidden" value="#{fqdnBean.fqdn}"
>  >>  > converter="#{fqdnConverter}"></h:inputHidden>
>  >>  >
>  >>  > </h:panelGrid>
>  >>  >
>  >>  > </body>
>  >>  >
>  >>  >
>  >>  > The problem is i am unable to access model object fqdn in deviceBean
>  >> and
>  >>  > ofcourse quite obviously i am able to successfully access Fqdn model
>  >>  > object in FqdnBean.
>  >>  >
>  >>  > But as fqdnForm is included in deviceForm i am accessing Fqdn model
>  >> object
>  >>  > or FqdnBean in  deviceBean as follows and it returns NULL
>  >>  > 1)
>  >>  >
>  >>  > FqdnBean fqdnBean = (FqdnBean)
>  >>  >
>  >> FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("fqdnBean");
>  >>  >
>  >>  > 2)UIInput fqdnComp = (UIInput) FacesUtils.findComponentById(null,
>  >>  > "fqdnHidden");
>  >>  >
>  >>  >
>  >>  > Any pointers/suggestions will be highly appreciated
>  >>  >
>  >>
>  >>  --
>  >>  View this message in context:
>  >> http://www.nabble.com/JSF-Value-Binding-to-Model-Object-doesnt-work-tp16785936p16800996.html
>  >>
>  >>
>  >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>  >>
>  >>
>  >
>  >
>
>  --
>  View this message in context: http://www.nabble.com/JSF-Value-Binding-to-Model-Object-doesnt-work-tp16785936p16808289.html
>
>
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Mime
View raw message