私はJSFおよびEJBアプリケーションを初めて使用するため、単純なJavaEEアプリケーションでも問題が発生します。私は、JSFのいくつかのタグとそれらのJava Beansへのバインドを試すことを目的として、JBossを使用してEclipseで単純なJavaEEアプリケーションを作成しています。次のJSfコードで出力ページに何も表示されない理由がわかりません。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<f:loadBundle basename="resources" var="msg" />
<head>
<title><ui:insert name="pageTitle">Page Title</ui:insert></title>
<style type="text/css">
</style>
</head>
<body bgcolor="#ffffff">
<h:body>
<h:outputText value="#{hello.world}" />
<h:outputText value="TTT" />
</h:body>
</body>
</html>
Beanからの値hello.worldだけでなく、単純なテキスト「TTT」も表示されません。Beanのコードは次のとおりです。
@ManagedBean
public class Hello {
final String world = "World";
/**
* Default constructor.
*/
public Hello() {
}
public String getWorld(){
return "Hello" + world;
}
}
facelets-config.xmlファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.1" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
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_1.xsd">
<managed-bean>
<managed-bean-name>hello</managed-bean-name>
<managed-bean-class>com.al.jsftest.Hello</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
プレーンテキストでタグを試してみると、画面に表示されますが、#{hello.world}では再び機能しません。つまり、Beanへのバインドが失敗します。JSFタグが正常に出力されるようにするためのヒントが得られたらすぐに、BeanをJSFにバインドするために、何を処理する必要があるかについてのヒントをいただければ幸いです。
更新:同様の質問で も同じ問題のようですが、私のアプリケーションはEclipseとJBossであり、NetbeansとGlassFishではありません。したがって、web.xmlファイルを追加します。おそらくその変更が必要ですが、それでも理解できません。
<?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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>JsfTest</display-name>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<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>