0

inを使用servletsするのStruts 2.3.4は良い習慣なのだろうか?

JSP ページを更新せずに特定の場所に html を配置する必要があります。これを達成するための2つの方法を見つけました:

1.リクエスト/レスポンスを処理するために作成しservletて使用します。AJAXPOST

<div id="mainDiv">

</div>

<script>
    $(document).ready(function() {
        $('#div2').click(function() { 
            $.post('testservlet', function(responseText) {
                $('#mainDiv').html(responseText); 
            });
        });
    });
</script>

2. を使用してアクションを呼び出しjQuery plugin、生成された応答を対象の場所に配置しJSPます (well-known を使用sx:submit)。POST問題は、リクエスト/レスポンスの処理方法がわからないことです。jQuery submitメソッドを使用しGETます。

どちらのソリューションが優れているか教えてください。どちらの場合も、結果にコンテンツを書き込むことができるHttpServletResponeと にアクセスできます。では、これを Action クラス内またはメソッド内で使用する必要がありますか?PrintWritertext/htmlJSPPrintWriterservlet

4

1 に答える 1

1

Servlethere.user simpleを使用する理由はなくAjax (Jquery)、アクションが処理され、応答が送信されます。

Struts2アクションは Ajax リクエストを処理するのに十分な能力がありPOST/GET、要件に応じてメソッドを自由に使用できます。

これは、データをアクションクラスに投稿し、そこから応答を取得する方法のサンプルです

JavaScript

$.ajax({
    type : 'POST', // can use GET also
        url : action URL, 
    data : $(formID).serialize(),  // only for POST
    success : function(response) {
         // handle your server response
         $("#MyDiv").html(response);
    },
    error : function(e) {
    // handle error
    }
  });

アクション クラス

public class MyAction extends ActionSuport{

 // define getter and setter for your data

 public String execute() throws Exception{
   // define your logic here
   return Action.SUCCESS;
 }
}

Struts.xml

<action name="myAction" class="MyActionClass">
   <result>JSP for success</result>
</action>

JSP コンテンツは、ajax 呼び出しの後に Jquery コードに送り返され、それらのコンテンツを指定した .xml ファイルに貼り付けることができますDIV

また、 は Struts2 でサポートされなくなり、ずっと前に廃止されたタグをsx:submit表しています。DOJO

Struts2 でサーブレットを使用することは、そのための有効なユース ケースがあり、これが使用されている多くのケースがある場合、悪い習慣ではありません。

于 2013-10-07T01:48:29.020 に答える