我的inputname.jsp文件
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <html> <head> <title>enter your name page</title> </head> <body> <f:view> <h1> <h: outputText value="JSF 1.2 Tutorial"/> </h1> <h:form id="UserEntryForm"> <h: outputText value="Enter Your Name:"/> <h:inputText value="#{UserBean.userName}" /> <h:commandButton action="welcome" value="OK" /> </h:form> </f:view> </body> </html> My welcome.jsp file <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <html> <head> <title>Welcome</title> </head> <body> <f:view> <h3> <h: outputText value="Welcome" />, <hutputText value="#{UserBean.userName}" /> to JSF 1.2 World! </h3> </f:view> </body> </html>
我的web.xml文件
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <!-- Faces Servlet --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup> 1 </load-on-startup> </servlet> <!-- Faces Servlet Mapping --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> </web-app>
我的面孔配置文件
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config> <navigation-rule> <from-view-id>/user/inputname.jsp</from-view-id> <navigation-case> <from-outcome>welcome</from-outcome> <to-view-id>/user/welcome.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>UserBean</managed-bean-name> <managed-bean-class>net.roseindia.UserNameBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>
我的UserNameBean.java文件
package net.roseindia; public class UserNameBean { String userName; /** * @return User Name */ public String getUserName() { return userName; } /** * @param User Name */ public void setUserName(String name) { userName = name; } }
当我打开inputname.jsf时
Enter your name: #{UserBean.userName}
而不是评估userbean.username,它只是打印它,与在welcome.jsf上发生的情况相同。我得到欢迎,#{UserBean.userName}到JSF 1.2 World!
我做错了什么请帮助克里山
在JSP上使用JSF 1.2至少需要Servlet 2.5容器,因为EL发生了变化(EL已从Servlet 2.5的JSF 1.1迁移到JSP 2.1)。您需要确保在Servlet 2.5兼容的容器上运行JSF 1.2 webapp,该容器web.xml声明为符合Servlet 2.5规范(或者更好的是,容器支持的最大值)。您web.xml是根据Servlet 2.3声明的,这暗示了不同的EL版本,因此将不评估EL表达式。
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app 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-app_2_5.xsd" version="2.5"> <!-- Config here. --> </web-app>
注意,您将您faces-config.xml错误地声明为JSF 1.1。您想将其重新声明为JSF 1.2,以充分利用JSF 1.2的功能。
faces-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_1_2.xsd" version="1.2"> <!-- Config here. --> </faces-config>
最后,但并非最不重要,Roseindia.net是一个 最糟糕的 学习资源的JavaEE。您应该将该站点真正列入黑名单。