Struts2学习笔记day02

1.Struts2.0开发
   1)搭建环境
       1.导入jar包
       2.导入配置文件src目录下面 struts.xml
           1).在apps的blank项目中copy
       2).在核心jar包中找到 struts-2-1-7.dtd
   2)开发
      1.在web.xml文件中配置单控制器
          <filter>
        ...
      </filter>
      <filter-mapping>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      2.Action的开发 【Struts2.0框架默认调用Action当中的execute方法】
         1)implements Action接口
     2)普通的java类
     3)extends ActionSupport[提倡]
        Action中如何获取用户在页面中提交的数据
        1) 在Action中提供和jsp一致的属性,提供getter和setter方法
        2) 在Action中使用对象进行封装【推荐】
        Struts2.0如何将数据加入jsp内置对象
    1.通过ActionContext
      1) ActionContext.getContext().put(key,value); request
      2) ActionContext.getContext().getSession().put(key,value); session
      3) ActionContext.getContext().getApplication().put(key,value); application
        2.implements SevletRequestAware
      public HttpServletRequest setServletRequest(HttpServletRequest request){
         .....
      }

      3.struts.xml的生明
        <package name="命名" namespace="/" extends="struts-default">
    <!--Struts2.0默认请求 *.action 或者 *-->
       <action name="请求" class="xxxx">
         <!--默认跳转为转发
            type=dispatcher|redirect
          -->
         <result name="action的返回值">跳转路径</result>
       </action>
    </package>

     <result name="action的返回值" type="dispatcher">/jsp</result>
     <result name="action的返回值" type="redirect">/jsp</result>
     <result name="action的返回值" type="chain">actionName</result>
       aAction 转发到 bAction
     <result name="action的返回值" type="redirectAction">actionName</result>
       aAction 重定向 bAction


2.Struts2.0框架默认将数据存入值栈【ValueStack】
   ValueStack用来存储请求和处理数据。【request,Session,applicaiton,action】
   ValueStack的结构
     root区(栈结构):存储请求对应的Acion对象
     context区(Map结构):存储request,session,application,action,paramters等信息

3.Struts2.O的标签
   <%@taglib uri="/struts-tags" prefix="s"%>
   <s:debug></s:debug><!--查看值栈当中的对象-->

4.Ognl 对象图导航语言【webWork框架中的表达式语言】
  使用Ognl访问ValueStack中的数据

5.使用Ognl访问值栈中的数据
  1.访问root区  直接写属性名
     <s:property value="id"/>
  2.访问context区中的数据
     使用#开头,如果访问session中的user对象[request,application]
        #session.user

6.Struts2.0标签
   set标签:获取root内部的数据,并将该数据存入到指定的内置对象当中,解决了复杂结构的访问
     scope:request|session|application|action(context区中的Action对象,访问时 #xxx)
  
   push标签:把栈(root区)中的数据放入到root区中,标签结束对象消失
     <s:push value="emps[0]">【emps-->emp-->address-->街道-->门牌号】
       <s:property value="name"/>
        <s:property value="salary"/>
     </s:push>
   
    bean:在JSP页面中创建对象,创建的对象放入Context区域
    <s:bean name="类的全路径" var="引用">
     <s:param name="属性">值</s:param>
    </s:bean>

7.Struts2.0的迭代标签
   iterator标签:迭代集合,类似于forEach标签,将迭代出来的数据存入到Context区域中
      status:index 下标  count:计数 first  last even:偶数  odd:奇数
    <s:iterator var="引用" value="迭代的对象" status="当前迭代的状态">
    </s:iterator>

8.集合的过滤
  集合对象.{?#this.属性==值}
   ?:返回满足所有条件的元素
   ^:返回满足过滤条件的第一个元素
   $:返回满足过滤条件的最后一个元素

 include标签:包含
   <s:include value="jsp页面"/>

 url标签:创建一个Url标签
   <s:url value="/Ajob/请求" />
   <a href="xxx"/>
    当前url :http://localhost:8080/appNames/xxx
    跳转到:http://localhost:8080/appNames/Ajob/login

 action标签:在加载JSP页面时触发Action请求
   <s:action name="请求" namespace="名空间" id="标识" executeResult="true">
  
   </s:action>
     executeResult:是否将Action运行的结果显示在该页面。默认值为false
     ignoreContextParams:该页面的请求参数是否转入到调用的Action当,默认为false
Struts2.0表单标签

Struts2.0提交多个对象
1.自定义类型转换器
2.国际化
3.数据格式校验
4.拦截器

你可能感兴趣的:(struts2)