zoukankan      html  css  js  c++  java
  • struts2知识点总结

    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.

     

  • 相关阅读:
    jQuery中$.proxy()的原理和使用
    JS中各种宽度、高度、位置、距离总结
    js中得call()方法和apply()方法的用法
    google浏览器翻译失败解决方案
    js区分移动设备与PC
    知识积累
    Django
    leetcode 27.Remove Element
    leetcode 28. Implement strStr()
    21. Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/xmaomao/p/3003690.html
Copyright © 2011-2022 走看看