如何在Liferay中使用Ajax调用将文件和参数一起发送到控制器

如何在Liferay中使用Ajax调用将文件和参数一起发送到控制器,ajax,liferay,Ajax,Liferay,我在Liferay中使用表单发送一些数据和附件。问题是我无法使用ServerResource发送文件。我需要执行ajax调用将数据发送到服务器。但是在Liferay中如何执行此操作。我正在发布我的代码 <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ taglib uri="http://liferay.com/tld/theme" prefix="theme" %> <

我在Liferay中使用表单发送一些数据和附件。问题是我无法使用ServerResource发送文件。我需要执行ajax调用将数据发送到服务器。但是在Liferay中如何执行此操作。我正在发布我的代码

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="theme" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<theme:defineObjects/>
<portlet:defineObjects />
<portlet:resourceURL var="resourceURL"/>
<script type="text/javascript">
function callServeResource(){
AUI().use('aui-io-request', function(A){
    A.io.request('<%=resourceURL.toString()%>', {
           method: 'post',
           form: {
               id: 'fm'
           }
        });
    });
}

  </script>
<form name="fm" id="fm" enctype="multipart/form-data">
Full Name:<input type="text" name="fullName"/>
<br/>
Age:<input type="text" name="age"/>
<br/>
File:<input type ="file" name="fileName"/>
<input type="button" value="Submit Form Data" onclick="callServeResource()">
</form>
}

所以现在的问题是,我得到了除文件之外的所有数据


如何在liferay中随controller中的文件发送所有数据???

有人能解决这个问题吗??请帮助“我不能使用ServerSource,但我必须使用Ajax”。在门户世界中,资源阶段正是处理此类请求的阶段。请提供更多背景信息,说明为什么不能使用资源阶段。您肯定需要添加一个URL(属性:action)您可以告诉我如何通过资源将一个名称属性和一个文件发送到服务器的语法吗?@OlafKock您现在可以提供帮助吗?只有文件不会发送到控制器使用uploadPortletRequest从请求而不是resourceRequest检索参数。有人能解决这个问题吗??请帮助“我不能使用ServerSource,但我必须使用Ajax”。在门户世界中,资源阶段正是处理此类请求的阶段。请提供更多背景信息,说明为什么不能使用资源阶段。您肯定需要添加一个URL(属性:action)您可以告诉我如何通过资源将一个名称属性和一个文件发送到服务器的语法吗?@OlafKock您现在可以提供帮助吗?只有文件不会发送到控制器使用uploadPortletRequest从请求而不是resourceRequest检索参数。
public class MainDriver extends MVCPortlet{

@Override
public void serveResource(ResourceRequest resourceRequest,
        ResourceResponse resourceResponse) throws IOException,
        PortletException {

    UploadPortletRequest uploadPortletRequest = PortalUtil.getUploadPortletRequest(resourceRequest);
    String fullName = ParamUtil.getString(resourceRequest, "fullName");
    String age = ParamUtil.getString(resourceRequest, "age");
    File file = uploadPortletRequest.getFile("fileName");
    System.out.println("The value of fullName  "+fullName);
    System.out.println("The value of age  "+age);
    System.out.println("The File  "+file);

    super.serveResource(resourceRequest, resourceResponse);
}