0

我有一个问题映射我url到达servlet class。我通过getJSON函数调用servlet,但简单的sysout不起作用。

在我的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>

当我在谷歌开发者工具中检查时,它实际上可以获得正确的 url,但说它没有找到

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

知道为什么吗?谢谢。

4

1 回答 1

0

解决!我发现它无法到达的原因servlet是因为 struts2 的 FilterMapping 捕获了所有url这就是为什么servlet-mapping变得无用的原因。为了防止进入默认struts2过滤器的过程,我在我的struts.xml中定义了这段代码

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

现在它可以成功地JSON从我的 servlet 类中获取。

于 2013-05-29T05:49:33.360 回答