0

私はすでにチケットを作成したのとかなり似た問題に直面していますが、現在、メインプロジェクトで問題が発生しています。以前のチケットには、テスト プロジェクトが含まれていました。 チケットへのリンクはこちらです。最初に私のプロジェクトを簡単に説明し、次にコードを提供します。

無関係な部分を省略したので基本的な ui ですが、webapp を起動すると、ajax を使用してロードされたイントロを持つメイン ページに移動する必要があります。これは、2 つの注釈と「ページ」と呼ばれる 1 つの文字列プロパティを持つ単純な pojo です。プロパティを「intro」に設定したので、デフォルトで読み込まれます。

// Navigation.java
@ManagedBean
@RequestScoped
public class Navigation {

  private String page = "intro";

  public String getPage() {
      return page;
  }

  public void setPage(String page) {
    this.page = page;
  }
}

index.xhtml は次のようになります。

<!-- index.xhtml -->
<h:body>
    <!-- Navigation -->
    <h:form>
        <p:menubar>
            <p:menuitem value="Home" icon="ui-icon-home" action="#{navigation.setPage('intro')}" update=":contentPanel" />
            <p:submenu label="Actions" icon="ui-icon-transferthick-e-w">
                <p:submenu label="Employee">
                    <p:menuitem value="Search" action="#{navigation.setPage('employee/find')}" update=":contentPanel" />
                </p:submenu>
            </p:submenu>
        </p:menubar>
    </h:form>
    <!-- ContentPanel -->
    <p:panel id="contentPanel" styleClass="content">
       <ui:include src="/#{navigation.page}.xhtml" />
    </p:panel>
</h:body>

ここで、'Actions/Employee/Create new' に移動すると、ファイル find.xhtml がメイン ページに読み込まれますが、フォーム自体は機能しません。ファイルは次のとおりです。

<!-- find.xhtml -->
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:p="http://primefaces.org/ui"
            xmlns:f="http://java.sun.com/jsf/core">
    <f:facet name="header">
      Create new employee
    </f:facet>
    <h:outputLabel value="User ID: " for="userId" />
    <p:inputText value="#{managedEmployee.userId}" id="userId" />
    <p:commandButton value="Show" update="result" />
    <h:outputText id="result" value="#{managedEmployee.userId}" />
</ui:composition>

そのため、ユーザーはフォームに userId を入力することができ、commandbutton が押されたときにフォームの近くに表示されます。明らかに私は何か間違ったことをしているに違いありませんが、それを理解できないようです。言いたくないのですが、答えが欲しいです。

前もって感謝します!

4

2 に答える 2

0

私は質問を理解していないかもしれませんが、コマンドボタンにアクションが設定されていないので、もちろん何もしません。

 <p:commandButton value="Show" update="result" />

次のようなものが必要です

 <p:commandButton value="Show" update="result" action="#{backer.method}"/>
于 2012-07-26T16:21:15.830 に答える
0

問題の解決策を見つけました。理由はわかりませんが、ui:composition のコードを h:form で囲み、そのフォーム ID を追加してリンクを更新すると、機能します。これが他の人が遭遇したときに役立つことを願っています。乾杯

<p:menuitem value="Create" action="#{navigationBean.setPage('employee/create')}" update=":contentPanel :form" />
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:p="http://primefaces.org/ui">
  <h:form id="form">
    ...
  </h:form>
</ui:composition>
于 2012-07-31T08:52:39.283 に答える