我正在尝试为家庭作业设计一个简单的 java bean/xhtml 设置。实现看起来很简单,但是我无法让 GlassFish 从 Java bean 中提取信息并将其显示在 HTML 中。
我编写了代码,然后创建了一个 war 文件并将其加载到 GlassFish 自动部署中。
这是 index.xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>System information</title>
</h:head>
<h:body>
<h:form>
<p>
This system's java version is #{properties.getJavaVersion}
</p>
<p>
This sytem's OS Name is #{properties.getOsName}
</p>
<p>
This System's OS version is #{properties.getOsVersion}
</p>
</h:form>
</h:body>
</html>
这是我位于 root/WEB-INF/classes/com/stansbury/ 中的 properties.java 文件
package com.stansbury;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ViewScoped
@ManagedBean
public class Properties {
public String javaVersion;
public String osName;
public String osVersion;
public String getJavaVersion() {
javaVersion = System.getProperty("java.version");
return javaVersion;
}
public String getOsName() {
osName = System.getProperty("os.name");
return osName;
}
public String getOsVersion() {
osVersion = System.getProperty("os.version");
return osVersion;
}
}
这是我的 web.xml 文件位于 root/WEB-INF/
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
</web-app>
最后但并非最不重要的是我的 faces-config.xml 文件位于 root/META-INF:
<?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">
</faces-config>
我在屏幕上看到的是“系统的操作系统名称是”,然后是空白。其他两个值也是一样的。我创建了一个传统应用程序来确保 System.getProperties 在我的计算机上运行。我还用不同的字符串初始化了 properties.VALUES,只是为了确保。在过去的六个小时里,我一直在用头撞墙。同样,根据我研究过的不同教程、教科书和 youtube 视频,这一切似乎都应该是有意义的。任何见解都会很棒!