当您将所有内容映射到 Struts2 过滤器时,我想知道如何将 servlet 与 Struts2 结合使用。假设我的应用程序中也有一个 servlet。我在我的 struts.xml 中尝试
<constant name="struts.action.excludePattern" value="/YourServlet"/>
现在我想知道上面的线路传达了什么..?常量名在这里做什么..!请指教
当您将所有内容映射到 Struts2 过滤器时,我想知道如何将 servlet 与 Struts2 结合使用。假设我的应用程序中也有一个 servlet。我在我的 struts.xml 中尝试
<constant name="struts.action.excludePattern" value="/YourServlet"/>
现在我想知道上面的线路传达了什么..?常量名在这里做什么..!请指教
为什么过滤器使用 /* 映射以及如何配置显式排除(从 2.1.7 开始) 在上面的示例中,我们将 Struts 2 调度程序映射到 /*,因此 Struts 2 对所有传入请求都有一个破解。这是因为 Struts 2 提供来自其 jar 文件的静态内容,包括 Dojo JavaScript 文件(如果使用 S2.0 或 S2.1+ 中的 Dojo 插件)和用于生成 HTML 的 Struts 2 标记的 FreeMarker 模板。
如果我们将过滤器映射更改为其他内容,例如 /*.html,我们必须考虑到这一点,并提取通常从 Struts 2 jar 文件或其他解决方案中提供的内容。
从 Struts 2.1.7 开始,您可以提供一个逗号分隔的模式列表,当与请求 URL 匹配时,过滤器将通过这些模式。这是通过配置选项 struts.action.excludePattern 完成的,例如在您的 struts.xml 中
<struts>
<constant name="struts.action.excludePattern" value=".*unfiltered.*,.*\\.nofilter"/>
...
如果您需要多映射 servlet,您可以使用:
<constant name="struts.action.excludePattern" value="/Servletname1, /Servletname2" />
但是在struts中,你不应该使用servlet url,因为它不统一。你可以使用ajax:
$.ajax({
url : "nameAction.action?param="+id,
type : "post",
data : {
'id' : id
},
success : function(data) {
// $('#result').html(data);
},
error : function(jqXHR, textStatus, errorThrown) {
$('#result').html("Error");
}
});