Actually,
I think I may well have fathomed it! It's working at the moment - it
couldn't resolve getAsObject on the converter as an object of mainObject
type since the ID pertains to mainObject.nestedBean. I amended the converter
to work with the nested bean and it seems fine.
I guess the only thing for me to work out now is how to make the
'getAsObject' more efficient so that I avoid numerous hits to the DB for
each item in the list.
Thanks! Carl
Gerald Müllan wrote:
>
> Hi,
>
> have you inserted a t:messages tag into the page in order to see if
> any errors may happen?
>
> regards,
>
> Gerald
>
> On 9/21/06, CarlHowarth <[EMAIL PROTECTED]> wrote:
>>
>> Hi again,
>>
>> I have been having a look at the custom converters and have written one
>> that
>> should handle any potential nulls. I set the value of the selectOneMenu
>> to
>> be #{BackingBean.mainObject} and the custom converter returns the ID of
>> the
>> nested bean if it exists, otherwise it returns null. This seems to work
>> OK,
>> although it currently has quite a lot of overhead; it is currently
>> hitting
>> the db on refresh each time to do the 'getAsObject' part of the
>> converter.
>> Bear in mind of course I probably haven't got it quite right yet!
>>
>> Now the converter is there I do not have the error created when the
>> nested
>> bean is null, however none of the action listeners on my page are being
>> fired at all. As I mentioned previously the action listeners are
>> completely
>> independent of the selectOneMenu, it's simply that if I do not set the
>> value
>> of the menu the listeners will fire.
>>
>> The action listeners are in a panelGrid, an example of which is as
>> follows:
>>
>> <h:commandLink actionListener="#{BackingBean.removeItem}">
>> <h:graphicImage url="image/icon/navigate_minus.png" alt="remove"/>
>> </h:commandLink>
>>
>> My selectOneMenu is in a separate panel grid and is set out as follows:
>>
>> <h:selectOneMenu id="industryList" value="#{BackingBean.mainObject}">
>> <f:converter converterId="xxxx.Converter" />
>> <f:selectItem itemValue="0" itemLabel="(#{webtext.select})"/>
>> <f:selectItems value="#{BackingBean.list}"/>
>> </h:selectOneMenu>
>>
>> The list returned from the backing bean returns an array list of
>> SelectItems. This code is contained within an embedded jsp page within a
>> panelTabbedPane using the following syntax:
>>
>> <f:subview id="tabName">
>> <c:import url="tabcontent/pagename.jsp"/>
>> </f:subview>
>>
>> This seems to be quite a strange issue to me though hopefully the answer
>> will be a lot more straightforward than it currently seems. I would be
>> grateful of any pointers whatsoever!
>>
>> Many thanks, Carl
>>
>>
>> Mike Kienenberger wrote:
>> >
>> > I don't see an action listener in the page code you posted.
>> > Make sure you have an h:messages tag (or two) or equivalent on your
>> > page to report validation errors. Make sure you catch global errors
>> > as well as specific ones.
>> >
>> > convertNumber should work, although it only returns either a Long or a
>> > Double value, depending on the number parsed. There's another number
>> > converter in the sandbox that will allow you to specify the type.
>> >
>> > The way others have handled this is to write specific converters for
>> > our Entity types (Hibernate or Cayenne) rather than for the id value.
>> >
>> > Are you allowed to arbitrarily change the
>> > BackingBean.object.subObject.id value in Hibernate? Is this really
>> > doing what you want it to do? I use Cayenne, so I can't say, but
>> > normally I want to set a variable to the data object returned, not set
>> > an id on an existing data object.
>> >
>> >
>> >
>> > On 9/20/06, CarlHowarth <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Hi Mike,
>> >>
>> >> I didn't have a converter within the selectOneMenu - the ID of the
>> >> selectItems is simply an integer. I'm a bit new to JSF - I have tried
>> >> adding
>> >> a convertnumber within the code.... this has stopped the error
>> mentioned
>> >> below, however this has stopped invoking the actionListener even when
>> the
>> >> data is populated. Do I need to add any further info to the converter,
>> or
>> >> look into writing my own?
>> >>
>> >> The menu is as follows:
>> >>
>> >> <h:selectOneMenu id="industryList"
>> >> value="#{BackingBean.object.subObject.id}">
>> >> <f:convertNumber />
>> >> <f:selectItem itemValue="0" itemLabel="(#{webtext.select})"/>
>> >> <f:selectItems value="#{BackingBean.clientIndustryList}"/>
>> >> </h:selectOneMenu>
>> >>
>> >> There are no errors showing up even though the actionListener is being
>> >> completely disregarded.
>> >>
>> >> Thanks, Carl
>> >>
>> >>
>> >>
>> >> Mike Kienenberger wrote:
>> >> >
>> >> > Did you register an appropriate converter for the data types of your
>> >> > select items?
>> >> >
>> >> > On 9/20/06, CarlHowarth <[EMAIL PROTECTED]> wrote:
>> >> >>
>> >> >> Hi,
>> >> >>
>> >> >> I have a strange issue with a JSF page I am working on...
>> >> >>
>> >> >> When I set the value of a selectOneMenu component to a property of
>> my
>> >> >> backing bean, my action listeners stop being fired. If I set the
>> value
>> >> of
>> >> >> my
>> >> >> selectOneMenu to a property of an object stored on my backing bean
>> >> they
>> >> >> work
>> >> >> again. The data is being returned using Hibernate and I want to
>> >> perform
>> >> >> some
>> >> >> logic in the backing bean in case one of the properties is null,
>> since
>> >> >> setting the menu's value to a property that would ordinarily throw
>> a
>> >> >> NullPointerException gives this error:
>> >> >>
>> >> >> ERROR
>> >> >>
>> org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils(355) -
>> >> >> Error finding Converter for component with id ....
>> >> >>
>> >> >> ...and that too prevents the action listeners from being triggered.
>> >> >>
>> >> >> Other than this I am not getting any errors and am a bit stuck in
>> all!
>> >> >>
>> >> >> The app uses myfaces 1.1.4 and tomahawk 1.1.3 - the menu component
>> and
>> >> >> command links that activate the action events are in a panelTab.
>> >> >>
>> >> >> Has anybody had a similar issue, or can anyone please point me in
>> the
>> >> >> right
>> >> >> direction?
>> >> >>
>> >> >> Many thanks in anticipation, Carl
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> >>
>> http://www.nabble.com/Strange-actionListener-component-value-problem-tf2304734.html#a6406078
>> >> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Strange-actionListener-component-value-problem-tf2304734.html#a6409626
>> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Strange-actionListener-component-value-problem-tf2304734.html#a6425124
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
>
>
> --
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
--
View this message in context:
http://www.nabble.com/Strange-actionListener-component-value-problem-tf2304734.html#a6426013
Sent from the MyFaces - Users mailing list archive at Nabble.com.