我正在使用Netbeans 8.0.2。我使用File - > New Project - > Java Web:Web Application创建了一个非常简单的(旨在成为JSF的)Web应用程序。在JSF页面中找不到名为bean的页面
我想在我的index.xhtml页面中打印一个@Named bean的实例变量,但它不按预期工作。我使用Netbeans中的绿色“运行项目”按钮部署应用程序,该按钮自动打包,部署和启动浏览器。
的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">
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>MyContext</param-name>
<param-value>null</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>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
的index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!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">
<h:head>
<title>Facelets Hello Greeting</title>
</h:head>
<h:body>
<!-- I am expecting the beans name to be printed here... -->
The managed bean name is: #{myFirstBean.name}
</h:body>
</html>
Managed Bean的
package my.first.jfs;
import java.io.Serializable;
import javax.faces.bean.SessionScoped;
import javax.inject.Named;
@Named
@SessionScoped
public class MyFirstBean implements Serializable {
public String name = "Insert your Name here...";
public MyFirstBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
下面是我的浏览器启动应用程序后的屏幕截图。
请让我知道是否需要任何额外的信息。谢谢!
'javax.faces.bean.SessionScoped'?托管bean享有默认的'@ Dependent'伪作用域。它不是会话范围的bean,除非它是从'javax.enterprise.context.SessionScoped'到达的,否则'@ Named'被'@ ManagedBean'所取代。 – Tiny
这个问题只处理这样一个问题,当这样的一个bean涉及表单提交时,而不是纯粹的表示:http://stackoverflow.com/questions/30128395/identifying-and-solving-javax-el-propertynotfoundexception-target-无法达到这是不是可以接受为愚蠢?正如你在阅读那里的答案后可能会看到的那样,根据目前提供的信息无法确定确切的原因。有关CDI和服务器版本/配置的详细信息在您的问题中完全没有。 – BalusC