I am new to JSF and I am having trouble working through my first example. I created a ManagedBean and I am trying to view it in a simple page. However, NetBean JSP page editer tells me the property is unknown and at runtime, the page errors with the Property X not found on type message (where X is the property I referenced). I am hoping someone can help me with it.
Here is my setup:
JSF 2.1, Tomcat 7, NetBean 7.0.1
Bean-------------
package swjsf.model.bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;
@ManagedBean
@SessionScoped
public class User implements Serializable {
private String pendingUsername;
public User() {}
public String getPendingUsername() {
return pendingUsername;
}
public void setPendingUsername(String pendingUsername) {
this.pendingUsername = pendingUsername;
}
}
Page----------------
<![CDATA[
<?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>Login</title>
</h:head>
<h:body>
<h:form>
<h:inputText value="#{user.PendingUsername}" />
</h:form>
</h:body>
</html>
]]>
Error message:
/login.xhtml @10,54 value="#{user.PendingUsername}": Property 'PendingUsername' not found on type swjsf.model.bean.User
According to the JSF debug page, the user object is instantiated in the session
------------------------------------------------------
Solution: This was a syntax error on my part. I am new to JSF and beans and didn't realize the property name starts with a lowercase letter. So the EL should have been "#{user.pendingUsername}".
这是参数小写