0

私は JSF に慣れていないので、ばかげた間違いではないと思い込まないでください。

Eclipse Indigo から JBoss 6.1 に webapp をデプロイしています。静的な index.html ファイルが正常に機能するため (そして、その変更は Web ブラウザーを介して反映されます)、webapp がサーバーにデプロイされていることを確認できます。

pages/NewRequest.jsf に JSF2 Facelet がありますが、これはほとんどロジックがありません (実際にはプレーンな XHTML です)。

<!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:f="http://java.sun.com/jsf/core">
<h:body>
Hola mundo again....
</h:body>
</html>

私のweb.xmlは次のとおりです(FaceServletが構成されていることを確認しました)

<?xml version="1.0"?>
<web-app version="3.0" 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-app_3_0.xsd">
<display-name>GesMan</display-name>
<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>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>/faces/*</url-pattern>
 </servlet-mapping>
<welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>NewRequest.jsf</welcome-file>
</welcome-file-list>
</web-app>

私にはすべて正当に見えますが、JSF にアクセスしようとすると、私の JSP と同じ名前の JSP が存在しないことを示す 404 エラー ページしか表示されません。コンソールにも server.log ファイルにもエラーは表示されません

どこが間違っているのか、またはより具体的なエラー情報を取得するにはどうすればよいか教えていただけますか?

4

1 に答える 1

1

実際のビュー ファイルのファイル拡張子は、JSF マッピング (.xhtmlなど) ではなく、使用されるビュー テクノロジ ( や など) を表す必要があります。ではなくが必要です。.jsp.jsfpages/NewRequest.xhtmlpages/NewRequest.jsf

もう 1 つの問題は、ウェルカム ファイルがマップされた (仮想) ファイル名を表すことができず、実際のファイル名を表す必要があることです。だからあなたはNewRequest.xhtmlそこに必要です。FacesServletただし、これには、正確にその URL パターンをマップする必要があります。

したがって、全体web.xmlとして、次のように単純化してください。

<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>
<welcome-file-list>
  <welcome-file>NewRequest.xhtml</welcome-file>
</welcome-file-list>

このように.xhtmlして、仮想 URL をいじることなく、引き続き URL で使用できます。

于 2012-05-07T13:53:22.870 に答える