2011-10-13 9 views
3

私は、より簡単な方法(したがってUI)でいくつかの数式を書く能力をユーザに提供し、それらをaに保存できるようにする小さなUIを構築したい。 txt(または類似のもの)ファイル。複数のselectOneMenusとボタンからのコンテンツでinputTextAreaを塗りつぶす

例:私は、さまざまなオプションを提供する3つの選択ボックス、数学演算を表すいくつかのボタン、およびinputTextAreaを持っています。これまで私はselectOneMenuといくつかのinputTextの中から選択したコンテンツをリンクし、必要なものと連結して、作成した数式を.txtファイルに書き出しました。

今、私は彼がそれをやっているときに、彼が書いている式を(コンテンツを選択してボタンを押すことによって)見ることができるようにしたいと考えています。これまで私はinputTextAreaを使ってそれをしようとしていましたが、私が管理したベストは、から選択されたコンテンツを1つだけのselectOneMenuからtextAreaに転送した後、ユーザーがテキストエリアに加えるすべてのアクション誰かが<h:panelGroup>を使って提案しましたが、私はどこにも行きませんでした。私はメニューを一杯にして何とかそこから行くようにしましたが、どちらもうまくいきませんでした。

私は2 selectboxesおよびTextAreaで、これまでに取り組んできたJSFの一部のサンプル:

<h:outputText value="Formula Name"></h:outputText> 
<h:inputText value="#{output.formulaName}" id="formulaName"></h:inputText>    
<br /><br /> 

The formula so far: 
<h:inputTextarea value="#{output.propertyReferenceValue}"></h:inputTextarea> 
<br/><br/><br/> 

Property1: 
<h:selectOneMenu value ="#{output.propertyReferenceValue}" id="selectTwo" 
    valueChangeListener="#{output.propertyReferenceValueChanged}" onchange="submit()"> 
    <f:selectItems value="#{property.propertyReference}"/>    
</h:selectOneMenu> 
<br/><br/> 
Property2:   
<h:selectOneMenu value ="#{output.property2ReferenceValue}" id="selectThree" 
    valueChangeListener="#{output.property2ReferenceChangedValue}" onchange="submit()"> 
    <f:selectItems value="#{property2.property2Refference}" />    
</h:selectOneMenu> 

任意の助けをいただければ幸いです。

PS。私はJSFの初心者です(約2日前に開始しました)ので、この問題や同様の問題を扱うドキュメントを指摘されていることさえ感謝します。

+0

これら 'valueChangeListener'sは基本的にハッキングされている:(このキックオフの例では、カンマで簡単な連結を行い、あなたはformula値、あなたが望む方法を構築することが完全な自由をしました)。あなたは値の変更に興味を持っていないようですが、提出された値だけに興味があるようです。回答を投稿する前に、JSF 1.xまたは2.xを使用しているかどうかを知りたいと思います。両方のリスナメソッドを投稿することは、入力と出力で正確に何を達成しようとしているのかを理解するのにも役立ちます。 – BalusC

+0

私はJSF 2.0を使用しています。私はこのコンピュータ上でアプリケーションの最後のバージョンを持っていません(今ノートパソコンから投稿しています)が、リスナのメソッドは次のようになります:public void propertyReferenceValueChanged(ValueChangeEvent e){ propertyReferenceValue = e。getNewValue()。toString(); }もう一方のリスナーは似ていました。私は少し物事をクリアすることを望んだ。 – DVM

+0

OK、私は答えを掲載しました。 – BalusC

答えて

0

ここでは基本的にはvalueChangeListenerを悪用しています。値の変更にはまったく関心がありません(つまり、に興味がなく、古い値と新しい値の両方が)、提出された値だけに興味があります。これは、JSF 1.xで、ajaxベースのコンポーネント・ライブラリを使用しない/使用できない/使用しない場合に許容されました。 valueChangeListenerで特定の問題を解決する方法は(複雑な)方法がありますが、組み込みのajax機能が付属しているJSF 2.xではこれはもう本当にできません。代わりに<f:ajax>タグを使用して、非同期のサブミットと部分的な更新を導入する必要があります。すべてだ

Formula name: 
<h:inputText value="#{output.formulaName}" id="formulaName" /> 
<br/><br/> 

The formula so far: 
<h:inputTextarea id="formula" value="#{output.propertyReferenceValue}#{output.property2ReferenceValue}"></h:inputTextarea> 
<br/><br/> 

Property1: 
<h:selectOneMenu value="#{output.propertyReferenceValue}" id="selectTwo"> 
    <f:selectItems value="#{property.propertyReference}"/> 
    <f:ajax render="formula" /> 
</h:selectOneMenu> 
<br/><br/> 

Property2:   
<h:selectOneMenu value ="#{output.property2ReferenceValue}" id="selectThree"> 
    <f:selectItems value="#{property2.property2Refference}" />    
    <f:ajax render="formula" /> 
</h:selectOneMenu> 

を次のように

はあなたのビューを書き換え

#{output}のBeanは、ビュースコープに@ViewScopedで入れる必要があります。任意のリスナメソッドは必要ありません。表示する前に値を操作したい場合にのみ、ajaxリスナーが必要です。例えば。

Formula name: 
<h:inputText value="#{output.formulaName}" id="formulaName" /> 
<br/><br/> 

The formula so far: 
<h:inputTextarea id="formula" value="#{output.formula}"></h:inputTextarea> 
<br/><br/> 

Property1: 
<h:selectOneMenu value="#{output.propertyReferenceValue}" id="selectTwo"> 
    <f:selectItems value="#{property.propertyReference}"/> 
    <f:ajax listener="#{output.calculateFormula}" render="formula" /> 
</h:selectOneMenu> 
<br/><br/> 

Property2:   
<h:selectOneMenu value ="#{output.property2ReferenceValue}" id="selectThree"> 
    <f:selectItems value="#{property2.property2Refference}" />    
    <f:ajax listener="#{output.calculateFormula}" render="formula" /> 
</h:selectOneMenu> 

public void calculateFormula() { 
    formula = propertyReferenceValue + ", " + property2ReferenceValue; 
} 
+0

ありがとうございました。明日の最初のことは、私は必要な変更を行います。これがJSFの2番目の問題ですので、JSF 2.0に関連した良い資料やチュートリアルをお勧めしますか?私はすべてのチュートリアルを行っています(他の人のJSF関連の問題を読んでいるだけでなく、私の手に触れることもできます)が、ほとんどの場合は簡単です。たぶん私が最大限に活用したのはhttp://www.mkyong.com/tutorials/jsf-2-0-tutorials/でした。とにかく、もう一度ありがとう。 – DVM

+0

Mkyong.comは良いリソースです。しかし、それらの記事はかなり高いレベルであり、X *にアプローチする方法は* * *ではなく* *にしか示されていません。おそらくあなたは私の最後のブログ記事が役に立つと思います:http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html – BalusC

+0

もう一度お礼します。 – DVM

関連する問題