方式1: 方式2: 方式3…
struts2官方架构 拦截器的创建 第一种方式 第二种方式 看源码AbstractInterceptor 底层已经帮我们写过这些方法了 第三种方式(推荐) 拦截器API学习 放行 前后处理 不放行,直接跳转到一个结果页面 不执行后续的拦截器以及Action,直接交给Result处理结果.进行页面跳转 拦截器配置 三个步骤:(1)注册拦截器 (2)注册拦截器栈 (3)指定默认拦截器栈 觉得难懂的可以看源码(struts-default.xml),只要按照顺序来都是一样的 随便定义一个Action…
  一.普通的POJO类(没有继承没有实现)-基本不使用 POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称.... public class DemoAction1 { public String execute(){ System.out.println("DemoAction1是普通的POJO类..."); return null; } } <!-- 普通的POJO类 --&…
一.普通的POJO类(没有继承没有实现)-基本不使用 public class DemoAction1 { public String execute(){ System.out.println("DemoAction1是普通的POJO类..."); return null; } } <!-- 普通的POJO类 --> <action name="action1" class="com.struts2.web.action2.DemoAc…
介绍一下struts2内置帮我们封装好的处理结果方式也就是底层源码分析 这是我们的jar包里面找的位置目录 打开往下拉看到result-type节点 name那一列就是我们的type类型取值 上一篇博客在分析的时候发现就算不写也会自动转发原因在这里,default=true 选择了默认方式 接着我们如果想看看底层是如何工作的就选择class属性复制双引号的内容 接着按住ctrl+shift+T就能出现一个框 OPen Type 进去之后发现是这个,点击Attach Source---->选择第二…
OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 理解图示 使用OGNL准备工作 导包(不需要额外的导包) 测试代码 fun1是通用代码 fun2 取出root中的属性 ---->直接写属性名 (默认取得是root对象中的) fun3 取出Context对象中的属性值 fun4为属性赋值 可以通过 属性名=值 "name='jerry'" 或者 #对象名.属性…
Action类的书写方式 方式1…
1,Action中get,set方法的使用流程? 前台form中有一个<input type="text" name="username"/> 如果传到action.在action中应该有一个属性,名字也叫username:而且这个username有get/set方法,其中get方法的命名必须为getUsername,其中set方法的命名必须为setUsername.这里方法名称按java Bean的规定.注意不是setUserName和getUserN…
关于struts2中action请求会执行两次的问题     在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行两次了.继续查找,发现调用的是返回json数据格式的action,如果是调用返回页面的action就不会有这种问题.     结合网上的搜索,总结了一下:         1.  json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息..        …
struts2中Action到底是什么,怎么理解 1.配置完web.xml2.创建视图页面login.jsp3.创建业务控制器LoginAction类(解释说:创建业务控制器LoginAction类,该类为程序的Action类)4.配置LoginAction类(解释说:当Action处理完客户端请求后返回一个字符串,没个字符串对应一个视图) 那么这个Action到底是什么,是一个类吗?怎么理解它,它和用于标签的有什么区别. 解决方案 首先,你了解Servlet么?Servlet是运行在java服…
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数:     a.定义:在Action类中定义属性,创建get和set方法:     b.接收:通过属性接收参数,如:userName:     c.发送:使用属性名传递参数,如:user1!add?userName=Magci: 2.使用DomainModel接收参数:   …
Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式):     a.定义:在Action类中定义属性,创建get和set方法:     b.接收:通过属性接收参数,如:userName:     c.发送:使用属性名传递参数,如:user1!add?userName=jim: 2.使用DomainModel接收参数:     a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法…
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 ActionSupport 实现 Action 通过继承 ActionSupport 来实现 Action 是我们的推荐做法,因为 ActionSupport 中提供了输入验证.国际化.execute 等常用方法,使得编写 Action 时代码很简单. 1.1 UserAction.java package…
总结Struts2 框架 struts2技术的优势 项目开源,使用及拓展方便 提供Exception处理机制 Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转 通过简单.集中的配置来调度业务类,使得配置和修改都非常容易 提供简单.统一的表达式语言来访问所有可访问的数据 提供标准.强大的验证框架和国际化框架 提供强大的.可以有效减少页面代码的标签 提供良好的Ajax支持 拥有简单的插件,只需放入相应的Jar包,任何人都可以扩展Struts2框架,比如自定义拦截器.自定义…
Struts2 框架学习 一.struts2是什么? (1)概念 (2)struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 (3)struts2具有更加先进的架构以及思想 (4)struts2的历史 struts2与struts1区别就是技术上没有什么关系. struts2的前身时webwork框架. 二.搭建struts2框架 1.导包 解压struts-2.3.24 (struts-2.3.24这个不是最新的应该也基本类似)…
Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式)     a.定义:在Action类中定义属性,创建get和set方法.     b.接收:通过属性接收參数,如:userName.     c.发送:使用属性名传递參数,如:user1!add?userName=Magci: JSP: <form action="sys/login.action" method="post">  <i…
Struts2中Action接收参数的方法主要有以下三种: Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数:     a.定义:在Action类中定义属性,创建get和set方法:     b.接收:通过属性接收参数,如:userName:     c.发送:使用属性名传递参数,如:user1!add?userName=Magci: 2.使用DomainModel接收参数:     a.定义:定义Model类,在Action中定义Model类的对象…
struts2中action手动获取Session,jsp页面參数 1. ActionContext 在Struts2开发中,除了将请求參数自己主动设置到Action的字段中,我们往往也须要在Action里直接获取请求(Request)或会话(Session)的一些信息, 甚至须要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们须要在Action中取得request请求參数"username"…
Struts2中Action取得表单数据的几种方法   Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form action="sys/login.action" method="post"> <input type="text" name="username"> <input type="submit"…
在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在action中有变量相对应的get方法才行,不然依然是取不到值的. jsp页面中可以用js代码取值…
首先是STRUTS.XML的配置.重点在于配置文件: <!-- struts2捕获action类异常 -->         <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result="error&q…
关于struts2中ActionContext类的作用有三个: 1.获取三大作用域对象及页面参数 2.是struts标签的上下文对象 3.ThreadLocal内装的就是ActionContext 怎么使用ActionContext类:获取作用域对象时使用   标签默认使用  线程安全底层默认使用 具体案例: import com.opensymphony.xwork2.ActionContext;public class FirstAction { private String name; p…
一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要的所有对象 使用:1.获取ActionContext  2.获取application,session.request,parameter资源  3.打印显示 1.获取ActionContext ActionContext.getContext() 调用自身的静态方法得到实例 采用的是单例模式 可以…
struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建. 这导致在两种情况下struts.xml配置文件的略微差异.   假如:LoginAction在包cn.edu.jlu.cs.action中.   1. struts2单独使用时,action的class属性为LoginAction的全路径名,如下: ... <action name="login" class="cn.edu.jlu.cs.a…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
接着上次博客的内容我继续分享我所学到的知识,和自己在学习过程中所遇到问题以及解决方案.当然,如果读者发现任何问题均可以在下方评论告知我,先谢! 在 Action 中访问 WEB 资源 web 资源 所谓的 WEB 资源是指 HttpServletRequest.HttpServletResponse.ServletContext 等原生的 API,作为 B/S 应用开发的 Controller 必须可以访问 WEB 资源,比如向域对象中读写属性等操作. 如何访问 WEB 资源 和 Servlet…
为Action配置method属性: 将Action类中的每一个处理方法都定义成一个逻辑Action方法. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="…
两者的结合原理 底层源码分析 栈原理 先进后出 我们的valuestack其实是一个接口 在实现类中有这个参数 CompoundRoot的类继承的是ArrayList,具体实现弹栈和压栈的方法具体实现原理 在OgnlValueStack实现类中分别有弹栈和压栈的方法 查看值栈中两部分的内容 (Root部分和context) 使用DEBUG标签 页面需要倒入标签库 输入地址栏回车出现一个Deug的链接,点击即可 Root部分 默认情况下,栈中放置当前访问的Action对象 Context部分 Co…
访问servletAPI方式 第一种:通过ActionContext (重点及常用 都是获得原生对象) 原理 Action配置 被引入的配置文件 在页面调用取值 第二种:通过ServletActionContext 第三种:通过实现接口 也可以注入其他接口 在这里找 看源码 struts-default.xml文件 封装配置了20个拦截器,刚才配置的是servletConfig 拦截器 注册拦截器 进入源码的类ServletConfigInterceptor 核心方法 数据中心ActionCon…
一.IoC方式                在struts2框架中,能够通过IoC方式将servlet对象注入到Action中.通常须要Action实现下面接口: a. ServletRequestAware:        实现该接口的Action能够直接訪问Request对象,该接口中提供void setServletRequest(HttpServletRequest request) 方法,实现此接口的Action控制类通过setServletRequestHttpServlet(Ht…