没有在 .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

访问页面