没有在 .xhtml 中显示 bean 的属性
doesn't show up bean's attributes in .xhtml
我开始学习 JSF。我使用 netbeans 和 glass fish 作为服务器。我有这个问题:
我的 start.xhtml
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<h:outputStylesheet library="css" name="default.css"/>
<title>some text</title>
</h:head>
<h:body>
<h:graphicImage library="images" name="wave.med.gif"
alt="duke waving"/>
<h2>
hi #{user.minimum} a #{user.maximum} .
</h2>
</h:body>
User.java
代码:
@Named(value = "user")
@SessionScoped
public class User implements Serializable {
private long minimum=0;
private long maximum=10;
public User() {
}
public long getMinimum(){ return (this.minimum);}
public long getMaximum(){ return (this.maximum);}
public void setMaximum(long m){ this.maximum=m;}
public void setMinimum(long m){ this.minimum=m;}
}
web.xml
代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>start.xhtml</welcome-file>
</welcome-file-list>
</web-app>
当我部署应用程序时,我只收到此消息:
hi #{user.minimum} a #{user.maximum}
。
而不是图片:wave.med.gif
和消息:
hi 0 a 10
.
问题出在哪里?
我想问题是你的 JSF 代码没有被评估。
您可以通过查看生成的 HTML 的源代码来证明这一点,如果它与您 start.xhtml 中的代码相同,则不会评估该代码。
要解决此问题,请将 web.xml
中的 servlet-mapping 更改为以下内容:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
并通过 http://localhost:8080/YOUR_WEBAPP/start.xhtml
访问页面
我开始学习 JSF。我使用 netbeans 和 glass fish 作为服务器。我有这个问题:
我的 start.xhtml
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<h:outputStylesheet library="css" name="default.css"/>
<title>some text</title>
</h:head>
<h:body>
<h:graphicImage library="images" name="wave.med.gif"
alt="duke waving"/>
<h2>
hi #{user.minimum} a #{user.maximum} .
</h2>
</h:body>
User.java
代码:
@Named(value = "user")
@SessionScoped
public class User implements Serializable {
private long minimum=0;
private long maximum=10;
public User() {
}
public long getMinimum(){ return (this.minimum);}
public long getMaximum(){ return (this.maximum);}
public void setMaximum(long m){ this.maximum=m;}
public void setMinimum(long m){ this.minimum=m;}
}
web.xml
代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>start.xhtml</welcome-file>
</welcome-file-list>
</web-app>
当我部署应用程序时,我只收到此消息:
hi #{user.minimum} a #{user.maximum}
。
而不是图片:wave.med.gif
和消息:
hi 0 a 10
.
问题出在哪里?
我想问题是你的 JSF 代码没有被评估。
您可以通过查看生成的 HTML 的源代码来证明这一点,如果它与您 start.xhtml 中的代码相同,则不会评估该代码。
要解决此问题,请将 web.xml
中的 servlet-mapping 更改为以下内容:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
并通过 http://localhost:8080/YOUR_WEBAPP/start.xhtml