Я пытаюсь сделать тип результата "json" из моего действия struts2. Вот конфигурация, которая у меня есть в моем коде.
Struts.xml:
<package name="example" namespace="/" extends="json-default">
<action name="vendorList" class="com.stg.providerportal.actions.AjaxVendorListAction">
<result name="success" type="json"></result>
</action>
</package>
Действие Struts:
private Object jsonModel;
public String execute() throws Exception {
String nextStep = SUCCESS;
Map session = getSession();
SessionParams params = (SessionParams) session.get(Constants.KEY_SESSION_PARAMS);
try {
Map json = new HashMap<String,String>();
json.put("apple", "Hi");
//vendorList = populateVendors(params,taxID,billingZipCode);
setJsonModel(json);
//session.put(Constants.KEY_SESSION_VENDOR_LIST, vendorList);
} catch (Exception e) {
CILogUtil.logInfo(e, params);
nextStep = AppConstants.SYSTEM_UNAVAILABLE;
}
return SUCCESS;
}
Я вызываю это действие, используя ajax (jquery), и вот как я звоню.
$.getJSON('vendorList.action' ,
{
"taxID": taxID,
"billingZipCode": billingZipCode
},
function(json) {
alert('hi');
});
$.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
alert(XMLHttpRequest.responseText);
}});
Когда я выполняю это, я получаю ответ от действия, как показано ниже. Не знаю почему.
Error 404: SRVE0190E: File not found: /vendorList.action
Даже когда я пытаюсь запустить это действие прямо из браузера, я получаю тот же ответ.
http://localhost:9081/providerportal1/vendorList.action?taxID=111billingZipCode=1111