Hi Andrew,
Thanks for your help, I'll try this asap
Regards
Jean-Noel
On 16 Feb 2010, at 00:24, Andrew Robinson wrote:
> Option 1)
> Instead of using entryBean.subProjects to check for disabled, why not,
> since you are already using component binding, just set the component
> disabled attribute to true or false based on when it changes. Set it
> to true in the page and then when you set it in the component, it will
> remember that state and no longer check the EL.
>
> Option 2)
> Store the disable state in the pageFlowScope
>
> Option 3)
> Use a session scoped bean to store the disabled state
>
> Option 4 (JSF 2 only))
> Store the disabled state in the viewScope
>
> Option 5 (3rd party))
> Store the value in a conversation scope provided by a 3rd party library
>
>
> On Mon, Feb 15, 2010 at 1:02 PM, Jean-Noël Colin <jn.colin@gmail.com> wrote:
>> Andrew,
>>
>> entryBean is indeed in request scope. Indeed, entryBean.subProjects is always null,
and I suspected this was related to the 'disabled' attribute. Thus my question is: how can
I set the proper value before the decoding is done? When should that be performed?
>>
>> Thanks for your help
>>
>> Jean-Noel
>>
>> On 15 Feb 2010, at 19:03, Andrew Robinson wrote:
>>
>>> What scope is entryBean?
>>>
>>> If entryBean is requestScope, then entryBean.subProjects will be null
>>> on each request and would need to be set before the decoding is done,
>>> otherwise the 2nd choice will never decode as it will be disabled. If
>>> entryBean is not requestScope than you also have a problem as you
>>> cannot use component binding with non-request scoped objects.
>>>
>>> -Andrew
>>>
>>> On Sun, Feb 14, 2010 at 8:32 AM, Jean-Noël Colin <jn.colin@gmail.com>
wrote:
>>>> Hi
>>>>
>>>> I need to write a simple page with 2 selectOneChoice components, the second
being dependent on the first. This means that the second should be disabled as long as a correct
value in the first one has not been selected. Also, the items in the second need to be dynamically
loaded depending on the content on the first one.
>>>>
>>>> I guess this should be easily feasible in Trinidad, but obviously, I must
be missing something because I can't get it to work. it seems that the value of the second
component never gets properly populated in the bean entry. Also, strangely, in the 'valuechangelistener',
the oldvalue is always null, even when a proper value was correctly selected.
>>>>
>>>> Also, is it possible to avoid the presence of a 'empty' selectItem by auto-selecting
the first valid entry (how can I do that)?
>>>>
>>>> Thanks a lot for your help
>>>>
>>>> Jean-Noel Colin
>>>>
>>>>
>>>>
>>>>
>>>> <tr:selectOneChoice id="project" label="project"
>>>> binding="#{entryBean.projectSelector}"
>>>> value="#{entryBean.currentLine.projectId}"
showRequired="true"
>>>> autoSubmit="true" unselectedLabel="Select"
immediate="true"
>>>> valueChangeListener="#{entryBean.projectChangeListener}">
>>>> <f:selectItems value="#{globalData.activeprojects}"
/>
>>>> </tr:selectOneChoice>
>>>> <tr:selectOneChoice id="subproject" label="sub-project"
>>>> partialTriggers="project" binding="#{entryBean.subProjectSelector}"
>>>> value="#{entryBean.currentLine.subProjectId}"
showRequired="true"
>>>> unselectedLabel="Select" disabled="#{empty
entryBean.subProjects}">
>>>> <f:selectItems value="#{entryBean.subProjects}"
/>
>>>> </tr:selectOneChoice>
>>>>
>>>>
>>
>>
|