You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Denis Robert (JIRA)" <in...@incubator.apache.org> on 2005/03/08 20:58:54 UTC

[jira] Created: (MYFACES-120) In JSP, a reference to a component defined later in the page fails

In JSP, a reference to a component defined later in the page fails
------------------------------------------------------------------

         Key: MYFACES-120
         URL: http://issues.apache.org/jira/browse/MYFACES-120
     Project: MyFaces
        Type: Bug
    Versions: 1.0.8 beta    
    Reporter: Denis Robert


The following code (based on an example from the book JavaServer Faces in action):

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>


<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<title></title>
	</head>
	<body>		 
		<f:view>
		<p>
			<h:message id="errors" for="helloInput" style="color:red" />
		</p>
		<h:form id="welcomeForm">
			<h:outputText id="welcomeOutput" value="Welcome to JavaServer Faces!"
				style="font-family: Arial, sans-serif; font-size: 24; color: green" />
			
			<p>
				<h:outputLabel for="helloInput">
					<h:outputText id="helloInputLabel" value="Enter number of controls to display: " />
				</h:outputLabel>
				<h:inputText id="helloInput" value="#{helloBean.numControls}" required="true">
					<f:validateLongRange minimum="1" maximum="500" />
				</h:inputText>
			</p>
			<p>
				<h:panelGrid id="controlPanel" binding="#{helloBean.controlPanel}" columns="20" border="1" cellspacing="0" />
			</p>
			<h:commandButton id="redisplayCommand" type="submit" value="Redisplay" 
				actionListener="#{helloBean.addControls}" />
			<h:commandButton id="goodbyeCommand" type="submit" value="Goodbye"
				action="#{helloBean.goodbye}" immediate="true" />
		</h:form>		
		</f:view>
	</body>
</html>


causes an error:

javax.servlet.ServletException: Could not render Message. Unable to find component 'helloInput' (calling findComponent on component 'errors')
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:125)

Commenting out the <h:message> tag or moving it after the <h:inputText> which defines the helloInput component works, though.

In the RI, the code above works flawlessly.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Commented: (MYFACES-120) In JSP, a reference to a component defined later in the page fails

Posted by "Heath Borders-Wing (JIRA)" <in...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/MYFACES-120?page=comments#action_60458 ]
     
Heath Borders-Wing commented on MYFACES-120:
--------------------------------------------

This is a JSP problem, not a JSF problem.

To get around this bug, enclose the components in a component that renders its children.

> In JSP, a reference to a component defined later in the page fails
> ------------------------------------------------------------------
>
>          Key: MYFACES-120
>          URL: http://issues.apache.org/jira/browse/MYFACES-120
>      Project: MyFaces
>         Type: Bug
>     Versions: 1.0.8 beta
>     Reporter: Denis Robert

>
> The following code (based on an example from the book JavaServer Faces in action):
> <%@ page contentType="text/html; charset=UTF-8" %>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
> <html>
> 	<head>
> 		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
> 		<title></title>
> 	</head>
> 	<body>		 
> 		<f:view>
> 		<p>
> 			<h:message id="errors" for="helloInput" style="color:red" />
> 		</p>
> 		<h:form id="welcomeForm">
> 			<h:outputText id="welcomeOutput" value="Welcome to JavaServer Faces!"
> 				style="font-family: Arial, sans-serif; font-size: 24; color: green" />
> 			
> 			<p>
> 				<h:outputLabel for="helloInput">
> 					<h:outputText id="helloInputLabel" value="Enter number of controls to display: " />
> 				</h:outputLabel>
> 				<h:inputText id="helloInput" value="#{helloBean.numControls}" required="true">
> 					<f:validateLongRange minimum="1" maximum="500" />
> 				</h:inputText>
> 			</p>
> 			<p>
> 				<h:panelGrid id="controlPanel" binding="#{helloBean.controlPanel}" columns="20" border="1" cellspacing="0" />
> 			</p>
> 			<h:commandButton id="redisplayCommand" type="submit" value="Redisplay" 
> 				actionListener="#{helloBean.addControls}" />
> 			<h:commandButton id="goodbyeCommand" type="submit" value="Goodbye"
> 				action="#{helloBean.goodbye}" immediate="true" />
> 		</h:form>		
> 		</f:view>
> 	</body>
> </html>
> causes an error:
> javax.servlet.ServletException: Could not render Message. Unable to find component 'helloInput' (calling findComponent on component 'errors')
> 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:125)
> Commenting out the <h:message> tag or moving it after the <h:inputText> which defines the helloInput component works, though.
> In the RI, the code above works flawlessly.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira