我正在使用 ajax 提交我的 jsp 页面数据,而无需在 liferay 自定义 portlet 中刷新页面。
我面临两个问题:
当我将 Ajax 函数调用到资源服务器方法时,它会在该方法中获取所有 ajax 数据,但是当一切都完成后,如果成功,我将无法获得任何数据作为回报。那么在Ajax函数执行成功后,我怎样才能得到一些数据作为回报呢?
我在我的表单中使用了简单的 HTML 文件上传控件,当我使用简单的提交方法时,我调用上传请求来获取文件的所有属性,并使用上传请求上传文件,但是在 Ajax 的情况下,我必须做所有事情在操作类中的资源服务器方法中使用资源操作,并且
null
通过上传请求获取所有值,那么我该如何解决这个问题?
我正在提供我的一个示例 Ajax 调用和我的资源服务器方法
这是我在 jsp 页面中的简单 ajax 调用
<script type="text/javascript">
function addToDo(addToDo) {
var todo = document.getElementById('toDo').value;
alert("");
var adv_name = document.getElementById('advertise_name').value;
var keywords = document.getElementById('keywords').value;
var adv_url = document.getElementById('adv_url').value;
var fileUpload = document.getElementById('fileUpload').value;
var mediatype= $('#mediatype option:selected').val();
$.ajax({
url :addToDo,
data: {
"todo":todo,
"adv_name":adv_name,
"mediatype":mediatype,
"keywords":keywords,
"adv_url":adv_url,
"fileUpload":fileUpload,
"CMD":"addToDo"
},
type: "GET",
timeout: 20000,
dataType: "text",
success: function(data) {
alert(data);
//when i alert this data..its always null
}
});
}
</script>
以下是我的上传控件:
<label>Browse</label>
<input name="fileUpload" id="fileUpload" type="file" />
<span id="restError2" style="color: #C62626;" class="help-block"></span>
在一个按钮上,我在上面调用 ajax 方法并重定向到资源服务器方法,如下所示:
@Override
public void serveResource(ResourceRequest request, ResourceResponse response){
if(request.getParameter("CMD").equals("addToDo")) {
System.out.println("came here for add");
// here am converting this resource request to uploadportletrequest because i have enctype="multipart/form-data"
UploadPortletRequest uploadReq = PortalUtil.getUploadPortletRequest(request);
sourceFileName = uploadReq.getFileName("fileUpload");// uploaded
// filename
advertise_name = uploadReq.getParameter("advertise_name"); //this value getting null
adv_link = uploadReq.getParameter("adv_url"); //this value getting null
keyword = uploadReq.getParameter("keywords"); //this value getting null
String resourceID = request.getResourceID();
System.out.println(resourceID);
}
}