1、struts2框架動作的後綴擴展名配置
我們在之前的章節中都介紹了框架來的配置
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
這個配置就是爲什麼我們每次在提交action動作時都需要加上後綴action。平時我們在瀏覽很多網站的時候發現各種各樣的後綴都有,這個是怎麼回事呢?其實我們自己也可以自己配置後綴或者不要任何後綴。配置有兩種方式:
第一種:如上面的代碼段,將url-pattern中改成你想要得後綴格式;
第二種:在struts.xml配置文件中配置:
<constant name="struts.action.extension" value="action"></constant>
如果在都配置完了的情況下有時候會出現完全不生效,可能是緩存的原因,把項目clean一下重啓即可。
2、過濾器StrutsPrepareAndExecuteFilter和FilterDispatcher
有些人在學習的過程中看到關於配置過濾器時可能有不同的配置,然後就很困惑不知道到底該用那種,原因是:
FilterDispathcer (org.apache.struts2.dispatcher.FilterDispatcher) 在早期的Struts2開發中使用,從Struts 2.1.3開始,它已不推薦使用。
如果你使用的Struts的版本 >= 2.1.3,推薦升級到新的Filter-StrutsPrepareAndExecuteFilter (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)。
3、include包含多個配置文件
在實際項目中我們可能涉及到多個模塊,最好的辦法是每個模塊有自己獨立的配置文件,這樣我們就可以在struts2主配置文件中引入模塊化的配置文件,每個模塊的開發人員只需要關心配置自己的配置文件即可:
<include file="com/test/conf/test-struts.xml" />
主配置文中如果想一個配置引入多個子配置文件,可以採用通配符的形式,但是子配置文件的命名規則需要注意XX-struts.xml格式。
<include file="com/test/conf/*-struts.xml" />
4、action動作註解
如果不想使用配置文件方式我們還可以利用註解來實現,struts2框架提供了對註解很好的支持。
@Namespace("/User")
@ResultPath(value="/")
public class ValidateUserAction extends ActionSupport{
@Action(value="Welcome", results={ @Result(name="success",location="pages/welcome_user.jsp")
})
public String execute() {
return SUCCESS;
}
}