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: {
       '<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. titledescription参数在其中可用。我仍在学习在哪里以及如何从 Liferay 对象访问数据,但似乎要UploadPortletRequest获得数据,它会从默认值的某个地方提取ResourceRequest……我仍然难以捉摸。


在数据库中插入空白值后,我必须重新加载页面才能看到插入的值?

您必须重新加载页面,因为resource操作不会触发页面刷新。如果您正在操作要反映在其他“视图”中的数据,则需要配置适当的通信或使用其他可用的 url 类型之一,它会触发doView您的其他“视图”的方法。

于 2014-08-05T16:10:57.257 回答