1、web.xml配置:

<filter>

<filter-name>Struts2</filter-name>

<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  </filter-class>

</filter>

<filter-mapping>

<filter-name>Struts2</filter-name>

<url-pattern>/*</url-pattern>   

</filter-mapping>

2、struts.xml中写的是要处理的action

<package name="cheliang" namespace="/cheliang" extends="struts-default">
   <action name="cheliang" class="com.java1234.action.CheLiangAction">
    <result name="success">${pageContext.request.contextPath}/success.jsp</result>
   </action>

也可以通过include分模块配置:

<struts>

<include file="cheliang.xml"></include> //在 cheliang.xml中配置action

<include file="zichan.xml"></include>

</struts>

--通配符:

<action name="grade_*" class="com.java1234.action.GradeAction" method="{1}">
    <result name="success">success.jsp</result>
   </action>//{1}就表示grade_*后面的*

动态方法调用:在struts.xml中配置:

<constant name="struts.enable.DynamicMethodInvocation" value="true" />

<action name="student" class="com.java1234.action.StudentAction">
    <result name="success">success.jsp</result>
   </action>

--这样请求就可以写成student!list进行调用(这样调用现在不提倡)

Struts2生成的action实例不是单例

result配置:

type默认是dispatcher内部转发;redirect(重定向);chain(链条);redirectAction(重定向到action)

result全局配置:

<global-results>
    <result name="error">error.jsp</result>
   </global-results>

拦截器:

<interceptors>
    <interceptor name="myInterceptor" class="com.java1234.interceptor.MyInterceptor"></interceptor>
   </interceptors>
   
   
   <action name="hello" class="com.java1234.action.HelloAction">
    <result name="success">success.jsp</result>
    
    <interceptor-ref name="myInterceptor"></interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
   </action>

还有一种写法 :

<interceptors>
    <interceptor name="myInterceptor" class="com.java1234.interceptor.MyInterceptor"></interceptor>
    <interceptor name="loginInterceptor" class="com.java1234.interceptor.LoginInterceptor"></interceptor>
    
    <interceptor-stack name="myStack">
     <interceptor-ref name="loginInterceptor"></interceptor-ref>
     <interceptor-ref name="defaultStack"></interceptor-ref>
    </interceptor-stack>
   </interceptors>
   
   <default-interceptor-ref name="myStack"></default-interceptor-ref>

这样的话在action中就不需要引用了

在默认的execute()方法中获取上下文:

ActionContext actionContext=ActionContext.getContext();

通过这个actionContext可以获取session ,application

Ognl是对象图导航语言的缩写,它是一种强大的表达式语言,Ognl访问ValueStack数据:<s:property value="name"/>

Ognl访问ActionContext的数据,要访问某个范围的数据要用#

#parameters 请求参数   request.getParameter()

#request 请求作用域的数据 request.getAttribute()

#session 会话作用域的数据 session.getAttribute()

#application 应用程序作用域的数据

#attr 顺序查找值

ognl访问javaBean对象:<s:property value="student.name"/>
<s:property value="student.age"/><br/>
ognl访问List集合:<s:property value="students[0].name"/>
<s:property value="students[0].age"/><br/>
<s:property value="students[1].name"/>
<s:property value="students[1].age"/><br/>
ognl访问Map:<s:property value="studentMap['goodStudent'].name"/>
<s:property value="studentMap['goodStudent'].age"/><br/>
<s:property value="studentMap['badStudent'].name"/>
<s:property value="studentMap['badStudent'].age"/><br/>

Struts基础详解的更多相关文章

  1. Dom探索之基础详解

    认识DOM DOM级别 注::DOM 0级标准实际并不存在,只是历史坐标系的一个参照点而已,具体的说,它指IE4.0和Netscape Navigator4.0最初支持的DHTML. 节点类型 注:1 ...

  2. Android中Canvas绘图基础详解(附源码下载) (转)

    Android中Canvas绘图基础详解(附源码下载) 原文链接  http://blog.csdn.net/iispring/article/details/49770651   AndroidCa ...

  3. javaScript基础详解(1)

    javaScript基础详解 首先讲javaScript的摆放位置:<script> 与 </script> 可以放在head和body之间,也可以body中或者head中 J ...

  4. Python学习一:序列基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7858473.html 邮箱:moyi@moyib ...

  5. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  6. Struts功能详解——ActionMapping对象

    Struts功能详解——ActionMapping对象 ActionMapping描述了struts中用户请求路径和Action的映射关系,在struts中每个ActionMapping都是通过pat ...

  7. 深入浅出DOM基础——《DOM探索之基础详解篇》学习笔记

    来源于:https://github.com/jawil/blog/issues/9 之前通过深入学习DOM的相关知识,看了慕课网DOM探索之基础详解篇这个视频(在最近看第三遍的时候,准备记录一点东西 ...

  8. 三剑客基础详解(grep、sed、awk)

    目录 三剑客基础详解 三剑客之grep详解 1.通配符 2.基础正则 3.grep 讲解 4.拓展正则 5.POSIX字符类 三剑客之sed讲解 1.sed的执行流程 2.语法格式 三剑客之Awk 1 ...

  9. java继承基础详解

    java继承基础详解 继承是一种由已存在的类型创建一个或多个子类的机制,即在现有类的基础上构建子类. 在java中使用关键字extends表示继承关系. 基本语法结构: 访问控制符 class 子类名 ...

随机推荐

  1. Webbrowser中显示MHT文件

    把MHT文件存成临时文件,用WEBBROWSER的Navigate方法打开,代码如下: //从程序集中读取资源文件 Assembly asmm = Assembly.GetCallingAssembl ...

  2. 廖雪峰js教程笔记4 sort排序的一些坑

    排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因 ...

  3. TCP粘包/拆包问题

    无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制. TCP粘包/拆包 TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河 ...

  4. Python与Hack之window下运行带参数的Python脚本,实现一个简单的端口扫描器

    1.前提是:windows已经配置好Python的环境变量: 2.进入cmd命令行模式: **输入python命令,检测是否环境配置好:显示这样说明配置环境变量没问题 **用cd命令进入Python脚 ...

  5. Chrome DevTools的15个使用技巧【转载】

    1.快速文件转换 2.在源代码中搜索 3.跳到特定行 4.在控制台中选择元素 5.使用多个光标和选择 6.保存日志 7.格式化打印{} 8.设备模式 9.设备仿真传感器 10.颜色选择器 11.强制元 ...

  6. ural 1146. Maximum Sum

    1146. Maximum Sum Time limit: 0.5 secondMemory limit: 64 MB Given a 2-dimensional array of positive ...

  7. soapui中文操作手册(七)----Web Service Sample Project

    REST推理 这份简短的教程将引导您完成架构推断功能. 我们将创建一个新的项目,并添加一个REST服务,而初始WADL文件启动了. 发送请求后,我们就可以使用响应来构建我们的架构. 演示请求 为了演示 ...

  8. BZOJ3542:DZY Loves March

    询问是要求 $\sum_{i=1}^n((x[i]-a)^2+(y[i]-b)^2)(x[i]=a||y[i]=b)$ 即求 $\sum_{i=1}^n(x[i]-a)^2(y[i]=b)+\sum_ ...

  9. flexbox布局的兼容性

    http://ayqy.net/blog/flexbox布局的兼容性/ 写在前面 flex布局早在2009年就有了,而现在是2015年6月8日,使用最新的flex语法会发现支持程度并不好,即使是在“高 ...

  10. ACM 国王的魔镜

    国王的魔镜 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的. 比如一 ...