[seam-issues] [JBoss JIRA] (SEAMFACES-250) UIInputContainer enclose attribute doesn't work

Dupont Dupont (JIRA) jira-events at lists.jboss.org
Tue Jan 15 05:29:21 EST 2013


Dupont Dupont created SEAMFACES-250:
---------------------------------------

             Summary: UIInputContainer enclose attribute doesn't work
                 Key: SEAMFACES-250
                 URL: https://issues.jboss.org/browse/SEAMFACES-250
             Project: Seam Faces
          Issue Type: Feature Request
            Reporter: Dupont Dupont


UIInputContainer enclose attribute doesn't work
Using enclose attribute with UIInputContainer should generate an HTML div.
This is not the case.

It is due to the fact that UIInputContainer expects a java.lang.Boolean and jsf implementation return a java.lang.String (see  [JAVASERVERFACES-2142|http://java.net/jira/browse/JAVASERVERFACES-2142] and [MYFACES-3027|https://issues.apache.org/jira/browse/MYFACES-3027]).

Also when fixing this issue, there's a possible NPE in startContainerElement() method (style and styleClass can be null when calling .length()).

Sample use case : 

Composite
{code:xml} 
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:cc="http://java.sun.com/jsf/composite">

	<cc:interface componentType="org.jboss.seam.faces.InputContainer">
		<cc:attribute name="label" required="true" />
		<cc:attribute name="ajax" default="false" />
		<cc:attribute name="inputs" default="1" />
		<cc:attribute name="labelClass"/>
		<cc:attribute name="enclose" default="true"/>
	</cc:interface>
	<cc:implementation>
		<h:outputLabel id="label" for="" styleClass="control-label #{cc.attrs.labelClass}">
			<ui:fragment rendered="#{cc.attrs.invalid}">
				<i class="icon-msg-err"></i>
			</ui:fragment>
			#{cc.attrs.label} 
			<h:panelGroup styleClass="required" rendered="#{cc.attrs.required}">*</h:panelGroup> : 
		</h:outputLabel>
		<div class="controls">
			<ui:fragment>
				<cc:insertChildren />
			</ui:fragment>
			<ui:fragment rendered="#{cc.attrs.invalid}">
				<p class="help-block"><h:message id="message#{1}" for=""/></p>
			</ui:fragment>
		</div>
	</cc:implementation>
</ui:composition>
{code}

Composite usage :
{code:xml} 
<field:edit id="nom" label="#{messages['chargeClientele.nom.label']}">
	<h:inputText id="input" value="#{chargeClienteleController.instance.nom}" styleClass="input-small" required="true"/>
</field:edit>
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the seam-issues mailing list