當您將所有內容都映射到Struts2過濾器時,我想知道如何結合Struts2使用servlet。假設我的應用程序中也有一個servlet。我正在嘗試在我的struts.xml中在Struts 2中使用servlet 2
<constant name="struts.action.excludePattern" value="/YourServlet"/>
現在我想知道上面的線路通信..?哪些呢常量名在這裏做..!請指教
當您將所有內容都映射到Struts2過濾器時,我想知道如何結合Struts2使用servlet。假設我的應用程序中也有一個servlet。我正在嘗試在我的struts.xml中在Struts 2中使用servlet 2
<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"/>
...
能否請你解釋一個關於你的代碼的簡短例子。 – user1538526 2012-07-25 03:02:54
如果需要,你可以使用多映射的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");
}
});
它說,爲/ YourServlet任何請求都將到鏈中的下一個過濾器或Servlet鏈。這非常簡單。它不適合你嗎? – 2012-07-25 17:45:34