标注是取代struts.xml的一种手段,也是以后发展的目标所在,会EJB3.0的人都知道标注是如何取代XML的存在,他拥有多少的潜力,无论是JPA等orm映射还是其他的WEB框架都在进行注解的洗礼;
标识是以后发展的方向,因此对此不可视而不见,它虽然不太成熟,但了解却是必然的;
首先需要改动的是web.xml:
以及action类的标注是如何配置的:
@ParentPackage("struts-default")
//继承的包
@Namespace("")
//命名空间
@Results( { @Result(name="succee",value = "/succee.jsp")})
//返回页面
另外
jsp的请求时的条件:XXXAction.java,
jsp页面:<s:form action="XXX">
程序:
-----------------------------------------------------------------------------------
表示拦截器:
拦截器: @Before @BeforeResult @After
@Before 是方法之前; @BeforeResult 方法执行后,result返回前; @After result返回后;
action类:
拦截器的标识无法与上面的标识action连用,至少我们有发现可以连用的地方,因此,他等若是struts.xml连用的,其配置为:
标识是以后发展的方向,因此对此不可视而不见,它虽然不太成熟,但了解却是必然的;
首先需要改动的是web.xml:
- <filter-name>struts</filter-name>
- <filter-class>
- org.apache.struts2.dispatcher.FilterDispatcher
- </filter-class>
- <init-param>
- <param-name>actionPackages</param-name>
- //固定格式
- <param-value>com.struts2.action</param-value>
- //所有action所在的包
- </init-param>
- </filter>
以及action类的标注是如何配置的:
@ParentPackage("struts-default")
//继承的包
@Namespace("")
//命名空间
@Results( { @Result(name="succee",value = "/succee.jsp")})
//返回页面
另外
jsp的请求时的条件:XXXAction.java,
jsp页面:<s:form action="XXX">
程序:
- @ParentPackage("struts-default")
- @Namespace("")
- @Results( { @Result(value = "/success.jsp"),
- @Result(name = "error", value = "/error.jsp") })
- public class DoAction {
- private String username;
- public String doAction() {
- if (username.equals("") || username == null) {
- return "error";
- } else {
- username = "欢迎您," + username;
- setUsername(username);
- return "success";
- }
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- }
-----------------------------------------------------------------------------------
表示拦截器:
拦截器: @Before @BeforeResult @After
@Before 是方法之前; @BeforeResult 方法执行后,result返回前; @After result返回后;
action类:
- @Before
- public void add() {
- System.out.println("--------------执行add()方法-----------------");
- }
拦截器的标识无法与上面的标识action连用,至少我们有发现可以连用的地方,因此,他等若是struts.xml连用的,其配置为:
- <struts>
- <package name="struts" extends="struts-default" >
- <interceptors>
- <interceptor name="annotationInterceptor"
- //此拦截器是必须声明的,他是声明你用的是标识拦截器
- class="com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor" />
- </interceptors>
- <action name="label" class="com.struts2.action.LabelAction">
- <interceptor-ref name="defaultStack" />
- <interceptor-ref name="annotationInterceptor"></interceptor-ref>
- //此处action,声明使用;
- <result name="succee">/succee.jsp</result>
- </action>
- </package>
- </struts>