0

私はトリッキーな問題を抱えています。3 つの iframe を含むページがあり、それぞれが struts アクションを呼び出してコンテンツを表示します。

現在、iframe の 1 つに (struts) フォームと (struts) 送信ボタンがあります。別のフレームでは、ユーザーが最後に実行したアクションの履歴。送信ボタンをクリックすると、履歴が最新になるように、フォームが送信され、ページ全体がリロードされます。

最後の問題ですが、重要なことは次のとおりです。

私が持っているとしましょう: - select1 : フォーム内の struts 選択。送信ボタンがクリックされると、関連する struts アクションが呼び出されます。しかし、私はこのアクションに「select1」属性を持ちたくありません。代わりに、この「select1」を含むオブジェクト、たとえば「fieldContainer」というオブジェクトが必要です。フォームの送信時に fieldContainer.select1 を初期化する必要があります。

それでは例を見てみましょう:

フォーム.jsp:

<s:form>
  <s:select id="select1" name="select1" list="select1list"/>
  <s:submit action="submitThisForm"/>
</s:form>

theAction.java :

FieldContainer fieldContainer;

@action("submitThisForm") 
String submitThisForm() {
  String mySelect = fieldContainer.select1 ;
  // do something with mySelect
  return "SUCCESS";
}

すべてのポイントに対応する何かを達成する方法がわかりません。

4

1 に答える 1

0

最初の問題については、クライアント側で JavaScript を使用して実行する必要があります。

送信されたページの新しいコンテンツを表示した後、iframe の親は他のページの更新を処理する必要があります。親が他のフレームを更新するか、送信に応じて必要な情報が非表示になり、親によって取得されて「履歴フレーム」に設定されます (js によって)。

どちらにも利点がありますが、javascript なしでは解決策が思いつきません。

あなたの最小の問題について:アクションがfieldContainerのゲッターを提供し、フィールドの名前が「fieldContainer.select1」の場合、ストラットはオブジェクトfieldcontainerのセッターに値を入れます。fieldContainer は valuestack のどこかにある必要があるため、Struts はそのセッターを見つけることができます。

于 2012-10-10T09:55:51.157 に答える