2011-08-09 8 views
1

は、私は、同じターゲット内にあるリンクのターゲットは、このAjaxのアクションが動作しないときに私は気づいたシンプルなユースケースStruts2の本部アヤックスリロード

<div id="contentDiv"> 

      <!-- This does not work --> 
      <div id="frmDiv"> 
        <s:form action=".."> 
          <s:a target="contentDiv" theme="ajax">Reload</s:a> 
        </s:form> 
      </div> 

      <!--This works --> 
      <div id="listDiv"> 
        <s:a target="frmDiv" theme="ajax" someaction >Click Me</s:a> 
      </div> 
    </div> 

を持っています。リンクのターゲットがdivの外側にあるとき、これは必要に応じて機能します。

同じdivをリロードするか、ajax結果のターゲットとして設定するための回避策があります。

私は、ボタンを使用する場合も、ここではなく、リンク、これは動作しませんストラット

2.0.14を使用しています。いずれの回避策も高く評価されます。

答えて

2

意味がある場合はちょうどhtmlを使用してください。また、ajax witoutタグライブラリを使用することは、おそらく長期的にはより速い方法です。彼らはテンプレートや単純なロジックには最適ですが、クライアントサイドのニーズがますます厳しくなるにつれて、すばやく失敗します。

アプリケーションをアップグレードする必要があります。何かが壊れて新しい機能が追加される可能性は非常に低いです。発生している問題は存在しない可能性があります。テストしていませんが、タグライブラリにはそのバージョン以降にいくつかの改善と修正がありました。

<a href="#first">link to first</a> 
<a href="#second">link to second</a> 

<!-- following weird ognl was used because you are at version 2.0.14, you should upgrade then I could have used the begin and end attributes, like in c:forEach--> 
<s:iterator value="(84).{ #this }" > 
    <br/> 
</s:iterator> 

<div id="first"> 
This is first. 
</div> 

<s:iterator value="(84).{ #this }" > 
    <br/> 
</s:iterator> 

<div id="second"> 
This is second 
</div>