Если вы хотите отправить данные формы с помощью Ajax.Это способ отправить
var formData = new FormData();
//File Upload
var totalFiles = document.getElementById("Iupload").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("Iupload").files[i];
formData.append("Document", file);
}
formData.append("NameCode", $('#SelecterID').val());
formData.append("AirLineCode", $('#SelecterID').val());
$.ajax({
url: "/Controller/ActionName",
type: "POST",
dataType: "JSON",
data: formData,
contentType: false,
processData: false,
success: function (result) {
}
})
Невозможно повторно выполнить рендеринг (обновление) компонента с помощью ajax, если сам компонент не отображается в первую очередь. Компонент должен всегда отображаться перед тем, как ajax может повторно отобразить его. Ajax использует JavaScript document.getElementById()
, чтобы найти компонент, который необходимо обновить. Но если JSF не отобразил компонент на первом месте, то JavaScript не может найти что-либо для обновления.
Решение состоит в том, чтобы просто ссылаться на родительский компонент, который всегда отображается.
<h:form>
...
<h:commandButton ...>
<f:ajax ... render=":text" />
</h:commandButton>
</h:form>
<h:panelGroup id="text">
<h:outputText ... rendered="#{not empty user}" />
</h:panelGroup>