Как получить ответ Ajax в Struts2
Я ссылался на эту ссылку Ajax, вызывая действие, но я не могу Привет сделать действие, используя ajax. вот мой код
$.ajax({
type:'POST',
dataType:'json',
url:'ajaxAction?ajax_docno='+entry1+'-'+entry2+'-'+entry3+'-'+entry4,
success:function(data,textStatus,jqXHR)
{
if(jqXHR.status==200)
alert("success");
}
if(jqXHR.status==500)
{
alert("Fail");
}
}
}
);
МОИ STRUTS.XML
<action name="ajaxAction" class="com.AjaxActionClass" method="checkExistence" >
<result name="success" type="httpheader">
<param name="status" >200</param>
</result>
<result name="fail" type="httpheader">
<param name="status" >500</param>
</result>
</action>
В классе МОЙ АКЦИИ
public String checkExistence()
{
//DB checkup
if exists return success;
if not exists return fail;
}
Это работает нормально
В своем классе действий я проверяю наличие данных в БД и возвращаю некоторое значение в jSP, чтобы показать сообщение.
Моя проблема в том, как передать переменные в JSP, чтобы показать некоторые alert
сообщение для пользователя, если данные не находятся в базе данных.
2 ответа
Решение
Спасибо за ответ. Я не ошибаюсь в вашем ответе, но теперь могу сделать это, используя следующий код
$.ajax({
type:'POST',
dataType:'json',
url:'ajaxAction?ajax_docno='+entry1+'-'+entry2+'-'+entry3+'-'+entry4,
statusCode:{500:function(){alert("The document number is alredy Exist");},
200:function(){alert("Good Work !! You can proceed.");} }
}
);
Там 3 способа:
Вы можете отправить JSP или JSON или просто коды состояния.
JSP
$.ajax({
...
success:function(data){
alert(data); //In case of JSP
}
<action name="myaction" class="actions.MyAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
JSON
$.ajax({
...
success:function(data){
var json=eval(data); //Untested, but should give an idea - JSON
alert(json.message);
}
<action name="myaction" class="actions.MyAction">
<result name="success" type="json"/>
<result name="error" type="json"/>
</action> <!-- for JSON result, don't forget to extend json-default in the package-->
Статус
$.ajax({
...
success:function(data,textStatus,jqXHR){
if(jqXHR.status==200){
alert('success');
}else if(jqXHR.status==201){
alert('failure');
}
}
<action name="myaction" class="actions.MyAction">
<result name="success" type="httpheader">
<param name="status">200</param>
</result>
<result name="error" type="httpheader">
<param name="status">201</param>
</result>
</action>
(Документация Jquery Ajax] ( http://api.jquery.com/jQuery.ajax/)