forceId doesn't work when page rendered after an 'immediate' action
-------------------------------------------------------------------

                 Key: TOMAHAWK-1171
                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1171
             Project: MyFaces Tomahawk
          Issue Type: Bug
          Components: ForceId
    Affects Versions: 1.1.3
         Environment: java 1.4.2_13, myfaces 1.1.4, tomahawk 1.1.3, windows XP
            Reporter: Eric Price
            Priority: Minor


I have a jsp with the following components:

   <t:outputText value="Processed Date/Time:"/>
   <t:panelGroup rendered="#{reportBean.dateCleared}">
        <t:inputText styleClass="deactiveText" title="yyyy-MM-dd" 
               size="10" maxlength="10" readonly="true"/>
        <t:inputText styleClass="deactiveText" title="HH:mm:ss" 
              size="8" maxlength="8" readonly="true"/>
   </t:panelGroup>
   <t:panelGroup rendered="#{!reportBean.dateCleared}">
        <t:inputText binding="#{reportBean.startDateInput}" size="10"
              maxlength="10" immediate="true" 
              value="#{reportBean.startDate}" title="yyyy-MM-dd" 
              forceId="true" id="processedDateStartDateInput">
            <t:convertDateTime type="date" pattern="yyyy-MM-dd"/>
        </t:inputText>
        <t:inputText binding="#{reportBean.startTimeInput}" size="8"
              maxlength="8" immediate="true" 
              value="#{reportBean.startTime}" title="HH:mm:ss" 
              forceId="true" id="processedDateStartTimeInput">
            <t:convertDateTime type="time" pattern="HH:mm:ss"/>
        </t:inputText>
   </t:panelGroup>


When the page is initially displayed the value of reportBean.dateCleared is 
false, so the first two inputText components are displayed. The source of the 
page looks like:

<td class="fieldLabelColumn">Processed Date/Time:</td>
<td class="defaultColumn">
    <input id="mainform:_idJsp393" name="mainform:_idJsp393" 
           type="text" value="" maxlength="10" readonly="readonly" 
           size="10" title="yyyy-MM-dd" class="deactiveText"/>
    <input id="mainform:_idJsp396" name="mainform:_idJsp396" 
           type="text" value="" maxlength="8" readonly="readonly"  
           size="8" title="HH:mm:ss" class="deactiveText"/>
</td>...


which shows what I would expect for the componet IDs.

The page also contains a jsCookMenu with an action method that causes the 
processed date fields to be set according to the user selection. The action 
method is executed with immediate="true" set on the menu component.

Once the date is set, the reportBean.dateCleared is set to false and the 
current page is re-rendered. The selected date is correctly displayed in the 
date fields, but the component IDs are not set correctly. After setting the 
date and the page re-rendered, the source looks like:

<td class="fieldLabelColumn">Processed Date/Time:</td>
<td class="defaultColumn">
    <input id="mainform:processedDateStartDateInput" 
          name="mainform:processedDateStartDateInput" type="text" 
          value="2007-12-15" maxlength="10" size="10" 
          title="yyyy-MM-dd" />
    <input id="mainform:processedDateStartTimeInput" 
          name="mainform:processedDateStartTimeInput" type="text" 
          value="23:59:59" maxlength="8" size="8" 
          title="HH:mm:ss"/>
</td>


The component IDs have the specified value, but the form name is prepended.

Once I navigate to the next page of the application, and then navigate back to 
this page (via an action method on a button), I see the following source:

<td class="fieldLabelColumn">Processed Date/Time:</td>
<td class="defaultColumn">
    <input id="processedDateStartDateInput" 
          name="processedDateStartDateInput" type="text" 
          value="2007-12-15" maxlength="10" size="10" 
          title="yyyy-MM-dd" />
    <input id="processedDateStartTimeInput"
          name="processedDateStartTimeInput" type="text" 
          value="23:59:59" maxlength="8" size="8" 
          title="HH:mm:ss"/>
</td>


Now the component IDs are what I expected, just the ID without the form name 
prepended.

Any insight as to why the forceId doesn't appear to work when rendering the 
page after an (immediate) action, but it does work when rendering the page via 
navigation?

Thanks. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to