在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');
});
答案 0 :(得分:1)
AUI的io请求只是ajax请求。
您可以使用以下代码在serveResource方法中获取参数:
ParamUtil.get(resourceRequest, "NAMEOFPARAMETER");
修改您的javascript函数并提供如下数据属性:
data: {
'<portlet:namespace />title': title,
'<portlet:namespace />description': description,
}
答案 1 :(得分: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
参数不在默认parametersMap
的{{1}}中,正如您所说的那样。出于好奇,我决定使用
ResourceRequest
<{1>}方法中的并检查UploadPortletRequest req = PortalUtil.getUploadPortletRequest(resourceRequest);
。其中提供了serveResource
和parametersMap
参数。我仍在学习从Liferay对象访问数据的位置和方式,但似乎title
有数据,它将从默认description
内的某处获取...其中仍然难以捉摸我。
在数据库中插入空白值后,我必须重新加载页面以查看插入的值吗?
您必须重新加载页面,因为UploadPortletRequest
操作不会触发页面刷新。如果您正在操作要在其他“视图”中反映的数据,则需要配置相应的通信,或使用其他可用的url类型之一触发其他“视图”的ResourceRequest
方法。