1

次の HTML ファイルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html 
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
>

<head>
<title>First Example JSF Program</title>
<head>

<body>
   Hello <h:outputText value="Darwin"></h:outputText>!
</body>
</html>

しかし、出力は「Hello Darwin!」と期待されていました。表示されません。「こんにちは!」のみ が表示されます。どうしてこれなの?エラーはなく、必要なすべての JAR ファイルが含まれていると確信しています。そうでない場合は、エラーがスローされますよね?

乾杯

PS これは HTML 5 ファイルですが、違いはありますか?

4

1 に答える 1

2

これは、ブラウザのアドレスに表示されるリクエストURLがウェブアプリで定義されているものと一致しなかったために、すべてのJSF作業を実行できなかった場合に発生する可能性が<url-pattern>あります。FacesServletweb.xmlFacesServlet

ブラウザでページを右クリックして[ソースの表示]<h:outputText>を実行すると、JSFタグが完全に処理されていないことに気付くはずです。JSFタグはWebブラウザによって認識されません。それらはFacesServlet、Webサーバー内で処理されることになっています。それらは適切なHTMLコードを生成することになっており、最終的なHTML結果にはJSFタグがまったく含まれていてはなりません。

ブラウザのアドレスに表示されるリクエストURLが、webappので定義され<url-pattern>ているのと一致することを確認する必要があります。それが次のようなものだと想像してみてくださいFacesServletweb.xml*.jsf

<url-pattern>*.jsf</url-pattern>

次に、アドレスバーのURLを/some.xhtmlから/some.jsfに変更する必要があります。

または、を直接web.xmlマップするように変更することもできますFacesServlet*.xhtml

<url-pattern>*.xhtml</url-pattern>

これで、仮想URLをいじる必要がなくなります。

HTML5 doctypeを持つファイルに関しては、まったく違いはありません。XHTML doctypeにのみ有効であるため、そのXMLプロローグのみを削除します。HTML4/5でJSF+Faceletsを使用することは可能ですか?も参照してください。

于 2012-11-22T15:08:11.433 に答える