我正在尝试在JSF中创建一个简单的“hello world”示例。我有一个页面(xhtml),一个bean类,它包含POJO类列表和POJO类。
当我启动项目它给出以下错误消息。
javax.servlet.ServletException: /PageTemplates/commonHeader.xhtml @12,48
value="#{current.Menutext}": The class 'com.abank.pojo.MenuItem' does not
have the property 'Menutext'.
这是我的tempalte XHTML页面。
<?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"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition>
<ul class="nav nav-pills">
<ui:repeat value="#{menuBean.menuItems}" var="current">
<li><h:outputText value="#{current.Menutext}"/></li>
</ui:repeat>
</ul>
</ui:composition>
</body>
</html>
包含MenuItem类列表的我的Bean类(POJO类)。
@Named
@ApplicationScoped
public class MenuBean implements Serializable {
private List<MenuItem> menuItems;
public List<MenuItem> getMenuItems(){
return menuItems;
}
@PostConstruct
public void init() {
menuItems=new ArrayList<MenuItem>();
MenuItem tempItem=null;
tempItem=new MenuItem();
tempItem.setMenuid(1) ;
tempItem.setMenutext("Hesaplar");
menuItems.add(tempItem);
tempItem=new MenuItem();
tempItem.setMenuid(2);
tempItem.setMenutext("Para Transferleri");
menuItems.add(tempItem);
tempItem=new MenuItem();
tempItem.setMenuid(3);
tempItem.setMenutext("Kredi Kartları");
menuItems.add(tempItem);
tempItem=new MenuItem();
tempItem.setMenuid(4);
tempItem.setMenutext("Ödemeler");
menuItems.add(tempItem);
}
}
最后一个是POJO课程。
@ApplicationScoped
public class MenuItem {
/**
*
*/
private static final long serialVersionUID = -4642390001647219288L;
private Integer menuid;
private String menutext;
public Integer getMenuid() {
return menuid;
}
public void setMenuid(Integer menuid) {
this.menuid = menuid;
}
public String getMenutext() {
return menutext;
}
public void setMenutext(String menutext) {
this.menutext = menutext;
}
}
正如您所看到的,POJO类中有公共getMenutext getter方法,但编译器说没有?
感谢。
嗨再次,我发现了问题。我的错误在于命名。属性名称必须以小写字母开头。
javax.el.PropertyNotFoundException: Property 'Name' not found on type