MaVRoSCyはあなたのURLを書き換えることPrettyfacesを使用することができます言ったように。彼らのドキュメントは非常に便利で非常に明確です。以下は、(Mavenの依存関係のアプローチなしの)手順です:
1)JSFのバージョンに応じて最新のjarをダウンロードし、プロジェクトのクラスパスに入れてください。このように、あなたのprettyfacesマッピングを定義しますpretty-config.xml
:
2)WEB-INF
下のファイルを作成します)web.xml
<filter>
<filter-name>Pretty Filter</filter-name>
<filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
3に以下を追加
<pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.0
http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.0.xsd">
<url-mapping id="accueil">
<pattern value="/" />
<view-id value="/path-to-yourpage.xhtml" />
</url-mapping>
<url-mapping id="error">
<pattern value="/" />
<view-id value="/tpath-to-yourpage2.xhtml" />
</url-mapping>
</pretty-config>
4)今すぐにoutcome
を定義する際に、あなたのpretty:idOfURLMapping
を返す必要があります。たとえば、pretty:accueil
は、最初に定義されたページにリダイレクトされ、通常はURLとしてhttp://localhost:8080/PlanificationDrapageWeb/
と表示されます。
最後に、機能要件の場合にのみこれを使用することに注意してください。さもなければ、私はBalusCが述べたように(彼の方法か、高度なPrettyfaces機能が必要な場合)、拡張子のないURLを使用します。
EDIT
この状況では、Prettyfacesは機能しないようです。あなたの時間を無駄にして申し訳ありません。
BalusCの回答が削除されたので、もう一度解決策を提案します。
1)あなたはのは、それを呼びましょう、セッションスコープの新しいマネージドBeanを作成します:PageManagedBean
を:
public class PageManagedBean {
private String includedPage = "/pages/accueil.xhtml";
//Setters and getters
}
2)は、マスターレイアウトページを作成します(Faceletsのテンプレート):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html 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:p="http://primefaces.org/ui">
<h:head>
<ui:insert name="head"></ui:insert>
</h:head>
<h:body>
<div class="pagewidth">
<ui:include src="shared/header.xhtml"/>
<!-- Content -->
<div class="page_content">
<div class="page_content_inner">
<div class="container">
<ui:include id="pageLivre" src="#{pageManagedBean.includedPage}"/>
</div>
</div>
</div>
<div class="page_content_footer"/>
<ui:include src="shared/footer.xhtml"/>
</div>
</h:body>
を今、あなたがしたいですページを変更するには、PageManagedBean.includedPageの値を変更するだけです。
どのアプリサーバーですか? – MaVRoSCy
私はGlassfishを使用しています – marouanoviche