我在将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>
当我查看谷歌开发者的工具时,它实际上可以获得正确的网址,但表示找不到它
http://IpAddressHere/ProjectNameHere/getMediaListByMediaType/options?dd=mediaNo&val=DVD-R
任何想法为什么?感谢。
答案 0 :(得分:0)
解决!我发现它无法到达servlet
的原因是因为struts2的FilterMapping捕获了所有url
,这就是为什么servlet-mapping
变得无用的原因。为了防止进入默认struts2过滤器的过程,我在struts.xml上定义了这段代码
<constant name="struts.action.excludePattern" value="/getMediaListByMediaType/.*"/>
现在它可以成功从我的servlet类中获取JSON
。