Я работаю с struts2, и у меня есть форма, и я хочу получить все значения в массиве JSON.Отсутствие страницы просмотра после вызова ajax во время отправки формы
Чтобы получить этот JSON массив, который я сделал фрагмент JavaScript, чтобы преобразовать форму в формате JSON и отправить его в действие Struts во время представить событие:
<script type="text/javascript">
jQuery("#advanced-search").submit(function(e){
var formInput=jQuery(this).serializeJSON({parseBooleans: true,parseNulls: true});
jQuery.ajax({
type: "POST",
url: "<s:url action='searchJSON'/>",
data: "jsonForm="+JSON.stringify(formInput),
dataType: "json"
});
});
</script>
Моя форма действия реализуется как:
<form action="javascript:void(0);" id="advanced-search" method="post">
...
</form>
Действие вызывается, и я могу использовать массив JSON. Следующий шаг - отобразить результат на другой странице, такой как search => result page. Таким образом, результат моих действий является плитка (JSP):
<action name="search" class="searchAction" method="search">
<result name="success" type="tiles">results</result>
<result name="error" type="tiles">error</result>
</action>
Java код:
public String search() {
JSONObject jObj = (JSONObject) new JSONTokener(jsonForm).nextValue();
....
return SUCCESS;
}
Проблема здесь ... моя форма была отправлена, и мое действие вызывается с хорошей JSON массив, но результат успеха не отображает jsp .. в браузере, страница по-прежнему является формой.
У кого-нибудь есть идея, почему перенаправление на страницу результатов не выполняется?
Это хороший способ представить форму в виде массива JSON?
http://stackoverflow.com/a/1534662/1654265 –
Не было отправлено JSON. –
Потому что это пост Ajax. Все это боковая полоса. Если вы хотите, чтобы что-то произошло после поста Ajax, вам нужно обновить свой JavaScript, чтобы что-то сделать после успешного ответа (или ответа на отказ). –