I'm trying to build simple JSF app using Glassfish as app server, and it's starting but after that this error is happening:
javax.el.PropertyNotFoundException: /index.xhtml @10,75 value="#{bean.genre}": Target Unreachable, identifier 'bean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)....
I tried to change my Bean annotations to @Model and tried different kind of Scopes but that didn't helped.
this is my index.xhtml page:
<!DOCTYPE html>
<html xmlns="http://www.w3c.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form id="genreForm">
<h:outputLabel for="genre" value="genre" />
<h:inputText id="genre" value="#{bean.genre}" label="genre" />
<br/><br/>
<p:commandButton action="#{bean.addGenre}" update="genreList"
value="Add genre" icon="ui-icon-check" style="margin:0"/>
<br/>
<br/>
<h:dataTable id="genreList" value="#{bean.getGenreList()}" var="g" border="1">
<h:column>
<f:facet name="header">
Genre id
</f:facet>
#{g.genreId}
</h:column>
<h:column>
<f:facet name="header">
Name
</f:facet>
#{g.genre}
</h:column>
</h:dataTable>
</h:form>
</h:body>
this is my Bean:
@ManagedBean(name = "Bean", eager = true)
@SessionScoped
public class Bean {
private int genreId;
private String genre;
public void addGenre() {
GenreDAO dao = new GenreDAOImpl();
Genre myGenre = new Genre();
myGenre.setGenre(genre);
dao.save(myGenre);
}
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
public int getGenreId() {
return genreId;
}
public void setGenreId(int genreId) {
this.genreId = genreId;
}
public List<Genre> getGenreList() {
GenreDAO dao = new GenreDAOImpl();
List<Genre> list = dao.findAll();
return list;
}
}