سؤال
أحاول إنشاء مكون مركب للاستخدام في تطبيق Seam الخاص بي ، وأنا أواجه مشكلات مع أبسط مكون "Hello ، World".
لقد وضعت ملفًا اسمه hello.xhtml في {jboss depling} /application.ear/application.war/resources/greet:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite">
<head>
<title>My First Composite Component</title>
</head>
<body>
<composite:interface>
<composite:attribute name="who"/>
</composite:interface>
<composite:implementation>
<h:outputText value="Hello, #{cc.attrs.who}!"/>
</composite:implementation>
</body>
</html>
الآن في home.xhtml ، الموجود في جذر الويب الخاص بي ({jboss deploy} /application.ear/application.war/home.xhtml):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:g="http://java.sun.com/jsf/composite/greet"
xmlns:s="http://jboss.com/products/seam/taglib"
template="layout/template.xhtml">
<ui:define name="content">
<div id="content">
<g:hello who="World"/>
<br/>
</div>
</ui:define>
</ui:composition>
لكن لم يتم عرض "Hello ، World" ، ولا أحصل على أي رسائل خطأ ، حتى عندما أقوم بتشغيل تسجيل مستوى التصحيح لفئات com.sun و javax.faces.
لقد قمت بالتحقق من أن دليل الموارد في المكان المناسب ، لأن إضافة موارد/صور/test.jpg ، ثم إضافة هذا إلى home.xhtml:
h:graphicImage value="#{resource['images:test.jpg']}"/>
النتائج في الصورة التي يتم عرضها. أنا فقط لا أعرف لماذا لا يلتقط JSF ملف XHTML الخاص بي من دليل Greet.
أيه أفكار؟
المحلول
حاول وضعه في META-INF/resources
, ، ليس مجرد resources
.
نصائح أخرى
فيما يلي مثال على مكون تسجيل الدخول المركب حيث يتم أيضًا شرح موارد JSF2:http://jugojava.blogspot.com/2011/09/jsf-composite-component-binding-to.html