Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7
-
Fix Version/s: 1.7.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:any
-
Support Case References:
-
Workaround Exists:Yes
Description
-
Hide
- Test_PanelDivider.war
- 6.29 MB
- Michael Thiem
-
- META-INF/MANIFEST.MF 0.0 kB
- WEB-INF/faces-config.xml 0.3 kB
- WEB-INF/html_basic.tld 244 kB
- WEB-INF/jsf_core.tld 25 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-beanutils.jar 115 kB
- WEB-INF/lib/commons-collections.jar 165 kB
- WEB-INF/lib/commons-digester.jar 139 kB
- WEB-INF/lib/commons-fileupload.jar 87 kB
- WEB-INF/lib/commons-logging.jar 31 kB
- WEB-INF/lib/el-api.jar 24 kB
- WEB-INF/lib/el-ri.jar 97 kB
- WEB-INF/lib/icefaces-comps.jar 1.68 MB
- WEB-INF/lib/icefaces-facelets.jar 593 kB
- WEB-INF/lib/icefaces.jar 868 kB
- WEB-INF/lib/jsf-api.jar 351 kB
- WEB-INF/lib/jsf-impl.jar 669 kB
- WEB-INF/lib/jstl.jar 21 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- WEB-INF/lib/standard.jar 385 kB
- WEB-INF/lib/xercesImpl.jar 1.15 MB
- WEB-INF/lib/xml-apis.jar 190 kB
- WEB-INF/web.xml 3 kB
- css/custom.css 0.9 kB
- css/paneldvr.css 1.0 kB
- index.jsp 0.2 kB
- main.jspx 1 kB
- temp.jspx 1 kB
- test.jspx 2 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
The focus is lost because the ice:messages component is located inside the ice:form. Whenever a validation error occurs ice:messages component will render its markup which in turn will trigger an update for the entire form since there was no message container element present before. I believe this new behavior was introduced by ICE-1888.
The solutions are:
a) move ice:messages tag outside ice:form
b) wrap ice:messages tag with a 'div' with ID
c) change ice:messages renderer to always render its root element
We need to revisit the change in ICE-1888 to have the ice:messages always render it's root elements in a non-visible manner that will also not violate XHTML validation. Perhaps rendering an empty <div> tag?
trunk: revision 16748
branch 1.7: revision 16749
To not to violate XHTML validation, the component adds the empty child to its container if there is no faces message to be served.
(e.g.)
layout="table"
<table style="display:none">
<tr> <td></td> </tr>
</table>
layout="list"
<ul style="display:none">
<li></li>
</ul>
Confimed that ice:messages if fixed in 1.7.1, but it's still broken with inline ice:message components as well, like this:
<table>
<tr>
<td><ice:label for="firstName" /></td>
<td><ice:inputText id="firstName" value="#
" /></td>
<td><ice:message for="firstName" /></td>
</tr>
</table>
sample app