1.struts2 步骤

1.创建web项目

2.添加struts2的必须jar

3.添加支持(配置web.xml文件)

4.创建界面和相应的action

5.配置struts.xml文件

6.部署运行项目

2.struts2的工作流程

1. 浏览器发送一个请求。 

2. 核心控制器FilterDispatcher根据请求决定调用合适的Action。 

3. 拦截器(Intercepter)自动对请求应用通用功能,如验证等。 

4. 回调Actionexecute方法,该execute方法根据请求的参数来执行一定的操作。 

5. Actionexecute方法处理结果信息将被输出到浏览器中,支持多种形式的视图。

3.struts2的配置文件

1.web.xml

2.struts.xml(核心 管理Action映射自己配置的

3.struts-default.xml  是struts2框架默认加载的配置文件。它定义struts2一些核心的bean和拦截器。这些拦截器是以key-value对的形式配置在struts-default.xml中,其中name是拦截器名字,就是后面使用该拦截器的引用点,value则指定拦截器的实现类。     

4.struts.properties(核心 管理属性自己配置的

5.default.properties(核心 管理属性)

4.<struts>标签下的子标签配置

1.<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts"  class="org.apache.struts2.impl.StrutsObjectFactory" />

2.<include file="struts1.xml"></include>

3.<constant name=“key”  value=“value” />

4.<package></package>

5.package标签下的配置

1.<action name="loginAction" class="com.action.loginAction">

<result name="success">/welcome.jsp</result>

<result name="error">/index.jsp</result>

  </action>

2.<global-results>

<result></result>

  </global-results>

3.<global-exception-mappings>

      <exception-mapping result="error" exception="java.long.Exception"></exception-mapping>

  </global-exception-mappings>

……………………………………

6.action类实现Action接口和继承ActionSupport

7.通过ActionContext类获得contextrequest),再通过context获得sessionapplication

  context.put("key","value");

  session.put("key","value");

  session.put("key","value");

 

public class ServletActionContext   org.apache.struts2

public static PageContext getPageContext()

public static HttpServletRequest getRequest()

public static HttpServletResponse getResponse()

public static ServletContext getServletContext()

8.action中直接使用一个对象,两种方式:

1.在提交表单时name属性为:对象.xxxx

2.实现ModelDriven<类类型>接口和其方法。

9.拦截器的实现

1.编写拦截器类 如:public class AuthorityInterceptor extends AbstractInterceptor

2.重写public String intercept(ActionInvocation invocation) throws Exception方法

  获得sessionActionContext ctx = invocation.getInvocationContext();

       Map session = ctx.getSession();

3.struts.xml<package>标签下定义拦截器

<interceptors>

<interceptorname="authority"

class="com.ascent.action.AuthorityInterceptor"/>

</interceptors>

4.struts.xml<action>标签下引用拦截器

<interceptor-ref name="defaultStack"/>

//在配了其他拦截器后,一定要再配上默认的拦截器栈

<interceptor-ref name="authority"/>

10.国际化

1.配置BaseName

(1)struts.xml中通过常量标签来配置 如:   <constant name="struts.custom.i18n.resources"  value="properties/message"/>这里message即为Basename

 

(2)struts.properties 如:struts.custom.i18n.resources= properties.message

这里message即为Basename

2.在形如message_zh_CN.propertiesmessage_en_US.properties等等的文件中配置相关的key-value键值对。

 

3.

(1)jsp页面中涉及语言的内容用下面方式输出:Struts2<s:text/>标签,该标签 可以指定一个name 属性,该属性指定了国际化资源文件中的key.

(2)为了在Action类中访问国际化消息,可以使用ActionSupport类的getText方法,该方法可以接受一个name 参数,该参数指定了国际化资源文件中的key .

(3)为了在该表单元 Label里输出国际化信息,可以为该表单标签指定一个key属性key指定了国际化资源文件中的key.

 

写博客不仅是一种习惯,更是一种沉淀。