0

私は 1 つのページ index.jsf を持っています。ヘッダーとフッターを含めるために ui:include を使用していました。コンテンツを動的に表示したいのですが、ユーザーが登録リンクをクリックすると、コンテンツがヘッダーとフッターを変更するだけで変更されませんでした。

私のコードサンプルは次のとおりです。

<ui:include render="#{mybean.include}"/>

そしてバッキングビーンで私のコードは:

public void getInclude(){
    if("page" == a){
        return "a.jsf";
    }
    else if("page" == b) {
     return "b.jsf";
    }
}

古い方法でかなりのURLの例を使用すると、jsfページにURLが表示されます

http://localhost/index.jsf?page=a or http://localhost/index.jsf?page=b

しかし、私は古い方法の代わりにかなりのURLを使用したい、例:

http://localhost/index/a

どうすればそれができますか (それはきれいな顔を使用することを意味し、if-else を何に使用できるのでしょうか?) 上記の質問を上記の代わりにここで説明できます。http://loalhost/index.jsf?page=a でも、きれいな URL またはきれいな顔を使用する場合、if-else ステートメントはどうすればよいですか? if(?? = a)

2 質問 助けてください よろしくお願いします

  ==========================================================

今、私はきれいな顔を設定してうまく機能しますが、Prettyfacesからパラメーターを取得する方法がわかりません.Pretty-config.xmlで、私は次の構成ページでした:

メインページ(コンテンツは動的に変化します)

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

ページ1

<url-mapping id="mainpage">
 <pattern value="/home/#{page:content1}" />
 <view-id>/faces/content1.xhtml</view-id> 
</url-mapping>

ページ2

<url-mapping id="mainpage">
 <pattern value="/home/#{page:content2}" />
 <view-id>/faces/content2.xhtml</view-id> 
</url-mapping>

ページ 1 では、動的サブビューに ui:include を使用します

<ui:include src=#{bean.includePage}/>

私のBeanにはインクルードページを取得するためのメソッドが1つあります

  public String getIncludePage(){
       if(page == null){
        return "content.xhtml";
       }
       else if (page.equals(content1)){
        return "content1.xhtml";
      }
      else if (page.equals(content2)){
        return "content2.xhtml;
      } 
}

しかし、動的ページ ビューのコンテンツを 1 つのページで変更することはできません

4

1 に答える 1

0

私があなたの質問を正しく理解していれば、あなたの問題は PrettyFaces とは何の関係もありません。

同じヘッダーとフッターを共有する別のページを作成したいというのは正しいですか? この場合、Facelets を使用したテンプレート作成について実際に学ぶ必要があります。これはまさにそのユースケースだからです。

Facelets がどのように機能するかについての短い例を次に示します。

template.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
  <title>
    <ui:insert name="title" />
  </title>
  <link rel="stylesheet" type="text/css" href="./css/main.css"/>
</head>

<body>

<div id="center">
  <ui:insert name="title" />
  <hr />
  <ui:insert name="content" />
</div>

</body>

</html>

some-page.xhtml:

<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">

<ui:composition template="/template.xhtml">
  <ui:define name="title">My Page Title</ui:define>
  <ui:define name="content">

    <p>
      This is the main content area
    </p>

  </ui:define>
</ui:composition>
</html>

Facelets は JSF のようにフィットする を読むことをお勧めします。これは、Facelets に関する非常に優れた記事です。

于 2011-12-25T10:25:02.320 に答える