2

その中でJSF1.1を使用していますが、2番目のselectOneMenuを1番目のselectOneMenuから更新して、このコードを取得したいと思います_

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://www.azureworlds.org" prefix="azure"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="x"%>
<%@ taglib uri="http://www.asifqamar.com/jsf/asif" prefix="a"%>

..。

<h:outputText value="State* " />
<x:selectOneMenu value="#{hotelBean.state}">
                    <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItem value="#{hotelBean.mapStates }" />
                    <x:ajax update="city" listener="#{hotelBean.handleCityChange}" />

</x:selectOneMenu>

                <h:outputText value="City* " />
                <x:selectOneMenu id="city" value="#{hotelBean.city}">

                    <f:selectItem itemLabel="Select One" itemValue="" />

                    <f:selectItem value="#{hotelBean.mapCities }" />
                </x:selectOneMenu>

x:ajax update = "city" listener = "#{hotelBean.handleCityChange}" が機能していません。検索しましたが、JSF1.1でAjaxがサポートされていません。

次に、これに対して何ができますか、JavaScriptをどのように使用できますか?そして私はJSの知識が少ないです。ありがとう

4

1 に答える 1

6

Tomahawk 1.1タグのドキュメントによると、タグはまったくありません<t:ajax>(はい、不明な理由でtプレフィックスの名前を変更したことはわかっています。一貫性を保つために呼び出し続けます)。xt

以前は、JSF 1.1の時代には、これにAjax4jsf taglibを使用していましたが、それでもhttp://ajax4jsf.dev.java.netで入手できる別のプロジェクトでした。JSF用のまともなAjaxライブラリは他にありませんでした。このIBMの記事のリッピングとして、Dojoの上にあるライブラリを漠然と思い出しますが、それは人気がありませんでした。その後、JSF 1.2時代の初めに、Ajax4jsfがJBoss RichFacesに買収され、そのサブライブラリとして含まれました。それ以降、公式サイトからAjax4jsfを個別にダウンロードすることはできなくなり、RichFacesコンポーネントライブラリ全体を一緒にダウンロードする必要があります。

ただし、Mavenアーカイブのどこかで、元のAjax4jsfライブラリをダウンロードできます。ここにあります:Ajax4jsf1.0.6。元のjava.netサイトがダウンしているため、元の開発者ガイドも利用できなくなりました。ただし、Googleは、元のAjax4jsf開発者ガイドのオンラインバックアップがあるサイトがあることを示しています(サイトは非常に遅いです。ダウンロードが完了したら、より速く参照できるように、またダウンした場合に備えて、オフラインコピーを作成します) 。さらに、それをセットアップして使用する方法(MyFacesと組み合わせて)に関するJavaWorldの記事もあります。

最終的には、次のような<a4j:support>ものを使用することになります。

<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
...
<h:outputLabel for="state" value="State* " />
<t:selectOneMenu id="state" value="#{hotelBean.state}">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItem value="#{hotelBean.mapStates }" />
    <a4j:support event="onchange" actionListener="#{hotelBean.handleCityChange}" reRender="city" />
</t:selectOneMenu>
<h:outputLabel for="city" value="City* " />
<t:selectOneMenu id="city" value="#{hotelBean.city}">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItem value="#{hotelBean.mapCities }" />
</t:selectOneMenu>
于 2012-11-21T11:14:43.597 に答える