I'm learning JSF/PRIMEFACES development, but when I try to create a bean with index.html I'm getting an error message.
I've already built the project, already configured my xml, and now I don't know what it might be.
Can someone help me ?
grateful
Bean.java
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
@ManagedBean(name=Bean)
public class Bean {
private String word;
private String anagram;
public void generateAnagram() {
Random rand = new Random();
List<Character> characters = new ArrayList<Character>();
for (char c : word.toCharArray()) {
characters.add(c);
}
StringBuilder output = new StringBuilder(word.length());
while (characters.size() != 0) {
int randPicker = (int) (Math.random() * characters.size());
output.append(characters.remove(randPicker));
}
this.anagram = output.toString();
}
public String getAnagram() {
return anagram;
}
public void setAnagram(String anagram) {
this.anagram = anagram;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
}
index.xhtml
<!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="jsfexample">
<p:panelGrid columns="2">
<f:facet name="header">Anagram maker</f:facet>
<h:outputLabel for="Word" value="Word" />
<p:inputText id="Word" value="#{bean.word}" label="Word" />
<h:outputLabel for="Anagram" value="Anagram" />
<h:outputText id="Anagram" value="#{bean.anagram}" />
<f:facet name="footer">
<p:commandButton action="#{bean.generateAnagram}" update="Anagram"
value="Generate anagram" icon="ui-icon-check" style="margin:0" />
</f:facet>
</p:panelGrid>
</h:form>
</h:body>
</html>
ERRO
2021-11-08 17:23:54,456 ERROR common.utils.DefaultExceptionHandlerOverride ----> Unexpected error caught in view control layer. javax.faces.FacesException: /pages/ws/index.xhtml @12,78 value="#{bean.word}": Target Unreachable, identifier 'Bean' resolved to null