Привет Я пытаюсь проверить правила навигации JSF.
My Person bean:
import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class Person { private int id; private String name; private int age; public Person(){ id = 1; name = "No name!"; age = 0; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String validate(){ if(this.name.equals("Evgeny")){ return "success"; }else{ return "failure"; } } }
Мои лица-config.xml:
<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> <navigation-rule> <from-view-id>/view.xhtml</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/destination.xhtml</to-view-id> </navigation-case> <navigation-case> <from-outcome>failure</from-outcome> <to-view-id>/view.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config>
И это моя форма:
<!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:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <h:body> <h:form> <h:outputText>Some Text!</h:outputText> Name: <h:inputText value="#{person.name}" id="inName"></h:inputText> <br></br> Age: <h:inputText value="#{person.age}" id="inAge"></h:inputText> <br></br> <h:commandButton value="OK" action="#{person.validate}"></h:commandButton> </h:form> </h:body> </html>
Когда я пытаюсь вызвать person.validate, я получаю javax.el.MethodNotFoundException Почему это происходит? Я использую MyFaces2.0.4 и Tomcat 7
javax.el.MethodNotFoundException
Сохраните все файлы, пересоберите проект, заново разверните веб-приложение и перезапустите сервер.
Другими словами, все выглядит хорошо.Вы просто не запускаете код, который, как вы думаете, вы запускаете.