4

私のサイトはJSFを使用しており、URLはhttp://mysitename.com/wompower6/faces/home.xhtmlのようです。

私はprettyfacesを使用しているので、pretty-config.xmlで以下を使用すると、名前をhttp://mysitename.com/ wompower6 /homeに変更できます。

<url-mapping id="home">
    <pattern value="/home" />
    <view-id value="/faces/home.xhtml" />
</url-mapping>

私の質問は

  1. アプリケーション名wompower6を削除して、URLがmysitename.com/homeになるようにするにはどうすればよいですか?

  2. 私のweb.xmlには <welcome-file>home.xhtml</welcome-file>、がありますが、これは機能していないようです。mysitename.comと入力しても、home.xhtmlにマップされません。ここに何か手がかりはありますか?

4

1 に答える 1

11

アプリケーション名wompower6を削除して、URLがmysitename.com/homeになるようにするにはどうすればよいですか?

これは<Context>Webアプリケーションの設定であり、構成は使用するservletcontainerによって異なります。たとえばTomcatを使用している場合、WebアプリケーションをルートWebアプリケーションにするための基本的な2つのオプションがあります。

  1. WARファイルの名前をに変更するROOT.warと、Tomcatはデフォルトでコンテキストルートにデプロイします。

  2. の要素pathの属性(または、定義する場所によっては、)を空の文字列に設定します。例えば<Context>Webapp/META-INF/context.xmlTomcat/conf/server.xml

    <Context path="" ...>
    

他のコンテナも同様の構造をサポートしています。詳細については、ドキュメントを参照してください。EclipseなどのIDEを使用している場合は、プロジェクトプロパティの[Webプロジェクト設定]プロパティで設定することもできます(プロジェクトを右クリックして[プロパティ]を選択します)。コンテキストルート値をちょうどに設定し/ます。


私のweb.xmlにはhome.xhtmlがありますが、これは機能していないようです。mysitename.comと入力しても、home.xhtmlにマップされません。ここに何か手がかりはありますか?

私はあなたが<welcome-file>設定について話していると思います。これは、などの仮想URLではなく、物理的に存在する/faces/*ファイルを指している必要があります。これを克服するには、基本的に2つの方法があります。

  1. 物理的に存在する ファイルを提供し/faces/home.xhtmlます(空のままにすることもできます)。

  2. マッピングの醜い/faces/*URLパターンをで置き換えて、XHTMLファイルのすべてのリクエストで開始されるようにします。FacesServletweb.xml*.xhtml

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

    /faces/*このように、 URLパターンをいじる必要はありません。

于 2011-07-01T11:19:46.937 に答える