liferay カスタム ポートレットでページを更新せずに、ajax を使用して jsp ページ データを送信しています。
私はそれで2つの問題に直面しています:
リソースサーバーメソッドにAjax関数を呼び出すと、そのメソッドですべてのajaxデータが取得されますが、すべてが完了すると、データが返されません。では、Ajax 関数が正常に実行された後、どうすればデータを取得できますか。
フォームで単純な HTML ファイル アップロード コントロールを使用しました。単純な送信メソッドを使用している場合は、アップロード リクエストを呼び出してファイルのすべての属性を取得し、アップロード リクエストでファイルをアップロードしていますが、Ajax の場合はすべてを行う必要があります。アクションクラスのリソースサーバーメソッドでリソースアクションを
null
使用し、アップロードリクエストですべての値を取得していますが、どうすればこの問題を解決できますか?
1 つのサンプル 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>
1つのボタンで、上記の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);
}
}