RF4 Component binding problem: RichFaces is not defined
ingoschi Jul 14, 2011 8:11 AMHi,
I 'm converting a JSF 1.2 RichFaces 3.3.3 application to JSF 2.0 RichFaces 4.0.
The application uses component binding to a great extent.
I tried an example with a plain facelet with rich:calendar, which works, and with a facelet with component binding which produces javascript errors like "RichFaces is not defined" probably for RichFaces.ui.Calendar
This is my test facelet
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</h:head>
<body>
<h:form id="form" binding="#{componentBindingCtrl.form}"/>
</body>
</html>
This is my ManagedBean
package bindingtest;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import javax.el.ELContext;
import javax.el.ExpressionFactory;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlPanelGrid;
import javax.faces.context.FacesContext;
import org.richfaces.component.UICalendar;
import org.richfaces.component.UIOutputPanel;
@ManagedBean(name = "componentBindingCtrl")
@SessionScoped
public class ComponentBindingCtrl{
private Date testDate = new Date();
public Date getTestDate() {
return testDate;
}
public void setTestDate(Date testDate) {
this.testDate = testDate;
}
private HtmlForm form;
public HtmlForm getForm() {
return form;
}
public void setForm(final HtmlForm form) {
this.form = form;
}
public ComponentBindingCtrl() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExpressionFactory expressionFactory = facesContext.getApplication()
.getExpressionFactory();
ELContext elContext = facesContext.getELContext();
form = new HtmlForm();
HtmlPanelGrid panelgrid = new HtmlPanelGrid();
panelgrid.setColumns(1);
panelgrid.setBorder(0);
form.getChildren().add(panelgrid);
UIOutputPanel panel = new UIOutputPanel();
panel.setId("panel");
panelgrid.getChildren().add(panel);
UICalendar calendar = new UICalendar();
calendar.setValueExpression("value", expressionFactory.createValueExpression(elContext, "#{componentBindingCtrl.testDate}", Date.class));
calendar.setEnableManualInput(true);
calendar.setRequired(false);
calendar.setId("cal");
calendar.setTimeZone(TimeZone.getDefault());
calendar.setLocale(Locale.getDefault());
panel.getChildren().add(calendar);
}
}
Is there something obviously wrong?
I added the whole maven project as attachment.
Regards,
Ingo
-
rich4dateTest.zip 3.4 KB