2013-05-29 1 views
0

У меня проблема с отображением моего url, чтобы достичь servlet class. Я вызываю сервлет getJSON, но простой sysout не работает.определение url в web.xml и ajax

в моем JSP я поставил:

$.getJSON('getMediaListByMediaType/options?dd=' + ddId + '&val=' + $('#mediaType:selected').text(), //some other codes here) 

в моей web.xml, у меня есть следующие:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<javaee:display-name>MediaScratch</javaee:display-name> 

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<servlet> 
    <servlet-name>dropDownServlet</servlet-name> 
    <servlet-class>jp.co.aeonbank.servlets.LoadDropDownServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dropDownServlet</servlet-name> 
    <url-pattern>/getMediaListByMediaType/*</url-pattern> 
</servlet-mapping> 

<session-config> 
    <session-timeout>5</session-timeout> 
</session-config> 

, как я проверил в инструмент разработчиков Google, это на самом деле может получить правильный URL-адрес, но говорит, что он не найден

http://IpAddressHere/ProjectNameHere/getMediaListByMediaType/options?dd=mediaNo&val=DVD-R 

любая идея почему? Благодарю.

ответ

0

Решено! Я выяснил, что причина, по которой он не может достигнуть servlet, является причиной того, что FilterMapping для struts2 захватывает все url, поэтому servlet-mapping стал бесполезным. Для того, чтобы предотвратить процесс ввода в фильтре Struts2 по умолчанию, я определил этот кусок кода на моем struts.xml

<constant name="struts.action.excludePattern" value="/getMediaListByMediaType/.*"/> 

Теперь он может успешно получить JSON из моего класса сервлета.