1

serveResource メソッドでタイトルと説明の空白値を取得しています。これは io リクエストからパラメーターを送信する正しい方法ですか?

データベースに空白の値を挿入した後、挿入された値を表示するにはページをリロードする必要がありますか? io-request は ajax リクエストではありませんか?

    <aui:script use="aui-base">
        A.one('#<portlet:namespace/>save').on('click', function(event) {
        var A = AUI();
        var title=A.one('#<portlet:namespace/>title').val();
        alert(title);
        var description=A.one('#<portlet:namespace/>description');

                    var url = '<%= newJob.toString() %>';
                    A.io.request(
                        url,
                        {

                            method:'POST',
                            data: {
                                <portlet:namespace />title: title,
                                <portlet:namespace />description: description,
                                    },


                        }
                            ['aui-io-deprecated']

                            );
                            Liferay.Util.getOpener().<portlet:namespace/>closePopup('<portlet:namespace/>dialog'); 
        });
4

2 に答える 2

1

AUI の io リクエストは ajax リクエストのみです。

以下のコードを使用して、serveResource メソッドでパラメーターを取得できます。

ParamUtil.get(resourceRequest, "NAMEOFPARAMETER");

JavaScript 関数を変更し、以下のように data 属性を指定します。

 data: {
       '<portlet:namespace />title': title,
       '<portlet:namespace />description': description,
       }
于 2014-07-31T09:17:24.103 に答える
0

と の両方がテキストフィールドであるtitleと仮定します。descriptionもしそうなら、description.val()電話に出ていない、より適切には.get('value'). ソースではダイアログ/モーダルを使用しませんでしたが、全体的なアプローチは同じである必要があります。

<script>
  AUI().use('aui-base', 'aui-io-request', function(A){
    A.one('#<portlet:namespace />save').on('click', function(event) {
         var title= A.one('#<portlet:namespace />title').get('value');
         var description=A.one('#<portlet:namespace />description').get('value');

         var url = '<%=myResourceURL.toString()%>';

         A.io.request(url,
                      {
                         method:'POST',
                         data: {
                                title: title,
                                description: description,
                               },
                         });
                      });
  });
</script>

私はまだLiferayに比較的慣れていないので、これにも問題がありました。dataあなたが述べたように、パラメータがparametersMapdefaultにないことに気付きましたResourceRequest。好奇心から、私は使用することにしました

UploadPortletRequest req = PortalUtil.getUploadPortletRequest(resourceRequest);

メソッドで、それが であるserveResourceことを確認しparametersMapます。およびパラメータが使用可能ですtitledescriptionLiferayオブジェクトからデータにアクセスする場所と方法をまだ学んでいますUploadPortletRequestが、データを取得するには、デフォルト内のどこかから引き抜かれるように思われますResourceRequest...まだ私にはとらえどころのない場所です。


データベースに空白の値を挿入した後、挿入された値を表示するにはページをリロードする必要がありますか?

resourceアクションによってページの更新がトリガーされないため、ページをリロードする必要があります。他の「ビュー」に反映させたいデータを操作している場合は、適切な通信を構成するか、doView他の「ビュー」のメソッドをトリガーする他の利用可能な URL タイプのいずれかを使用する必要があります。

于 2014-08-05T16:10:57.257 に答える