struts2笔记】的更多相关文章

关于回显: 如果是int型,默认就会回显为0,如果不想让回显,则Integer就好 //**************************************声明式验证************************************** 如果配置文件xml没有提示,需要重新关联tdt: windows-preferences-xml-xml catalog,看里面有没有要关联的tdt,如果有,先移除再添加.add: key type : uri key : tdt路径 然后从fir…
<context-param> <param-name>pattern</param-name> <param-value>yyyy-MM-dd hh:mm:ss</param-value> </context-param> //获取当前 WEB 应用的初始化参数 pattern ServletContext servletContext = ServletActionContext.getServletContext(); Syst…
Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可. Struts2 中,任何一个POJO都可以是一个action类. Struts2 会为每一个 HTTP 请求创建一个新的 Action 类的实例,即 Action 不是单例的,是线程安全的. :8080/contextPath 必须有一个不带参的构造器,struts.xml中通过全类名反射创建类实例 在jsp页面中,request.setCharacterEncod…
1.自定义struts拦截器 应用场景:如果用户登陆后可以访问action中的所有方法,如果用户没有登陆不允许访问action中的方法,并且提示“你没有操作权限” 1)两个页面,一个用户登陆user.jsp,一个用户退出quit.jsp,都放在WebRoot目录下 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.get…
流程: 1. StrutsPrepareAndExcuteFilter:StrutsPrepareAndExcuteFilter作为前端控制器,是整个Struts2的调度中心. 2. ActionMapper:ActionMapper负责识别当前的请求是否需要Struts2做出处理. 3. ActionProxy:这个对象作为Action与xwork之间的中间层,会代理Action的运行过程. 4. ActionInvocation:ActionInvocation对象描述了Action运行的整…
Struts2对异常支持(声明式异常.自动的异常处理), 异常处理(运行期异常事务自动回滚) 1. 自定义异常类,继承RuntimeException或Exception实现构造方法. 2. 配置异常:全局页面跳转,与全局异常处理.其他包如果想使用,需要继承. <global-results> <result name="error">/error.jsp</result> <result name="input">/…
Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4. 表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5. Struts2的Action     取得文件名称->>规则:输入域的名称+…
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFi…
在一些项目中经常会让用户提交表单,当用户点击按钮提交后,如果再次浏览器刷新,这就会造成表单重复提交,若是提交的内容上传至服务器并请求数据库保存,重复提交的表单可能会导致错误,然后跳转到错误界面,这是一个糟糕的用户体验. 因此Struts2提供了一个标签token验证机制,能够避免重复提交表单. 这里要注意的一点是,Action类必须继承ActionSupport,不然会导致空指针异常(这问题卡了好久T-T) ====================================== 下面简单实…
使用struts标签前,首先要配置struts2架构,然后导入标签库,jsp插入如下语句: <%@taglib uri="/struts-tags" prefix="s" %> =============================  property标签 property标签用于输出指定值: <s:setname="name" value="'kk'"/> <s:property value…
OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言. ------------------------------------- 相对EL表达式,它提供了平时我们需要的一些功能,如:     * 支持对象方法调用,如xxx.sayHello():     * 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 |  值名],例如:        …
需要两个步骤,自定义类实现拦截器接口和在struts.xml注册拦截器 =============================== 1.自定义类实现com.opensymphony.xwork2.interceptor.Interceptor接口: ---------------------------------------- 2.在struts.xml注册拦截器   注意 <interceptors>节点为注册拦截器,该节点需在其他节点之前 需要为哪个Action设置拦截器便在哪个Ac…
在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验.  对于输入校验struts2提供了两种实现方法: 1.采用手工编写代码实现. 2.基于XML配置方式实现. ==================================  ================================== 手工编写代码实现对action中所有方法输入校验 通过重写validate() 方法实现, validate()方法会校验action中所有与ex…
与ServletAPI解耦的访问方式 为了避免与 Servlet API 耦合在一起, 方便 Action 做单元测试, Struts2 对 HttpServletRequest, HttpSession 和 ServletContext 进行了封装, 构造了 3 个 Map 对象来替代这 3 个对象, 在 Action 中可以直接使用 HttpServletRequest, HttpSession, ServletContext 对应的 Map 对象来保存和读取数据. ============…
 通配符映射 * 一个 Web应用可能有成百上千个 action 声明. 可以利用 struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 * 通配符映射规则     > 若找到多个匹配, 没有通配符的那个将胜出     > 若指定的动作不存在, Struts 将会尝试把这个 URI与任何一个包含着通配符 * 的动作名及进行匹配      > 若 Struts找到的带有通配符的匹配不止一个, 最后一个匹配将胜出     > 被通配符匹配到的 URI 字符串的子串…
 概述 * 从一个HTML 表单到一个Action 对象, 类型转换是从字符串到非字符串.     >HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String转换为特定的数据类型 * 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters拦截器可以自动完成字符串和基本数据类型之间转换. ========…
访问HelloWorld应用的路径的设置 * 在struts1中,通过<action path=“/primer/helloWorldAction.action”>节点的path属性指定访问该action的URL路径. * 在struts2中,访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例如:      访问HelloWorldAction的URL路径为: /primer/helloWorldAction.action  (注意:完整路径为:ht…
1.创建新的Dynamic Web项目   ------------------------------------------ 2.struts2框架配置   ------------------------------------------ 3.创建类HelloAction,添加sayHello属性和定义返回值为String的excute无参方法 * 需注意的是,这里的excute方法作为struts.xml配置的参数,其返回值必须为String类型 * 且其返回的值为struts.xml…
1.Struts2简介   Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大.Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品.虽然从Struts 1到Struts 2有着太大的变化,但是相对于W…
1.配置异常处理 <action name="save" class="com.test.actions.ProductAction" method="save"> <exception-mapping result="register" exception="java.lang.ArithmeticException"></exception-mapping> <…
1.OGNL Object-Graph Navigation Language,对象-图 导航语言,可以方便的操作struts2值栈对象 2.对象栈操作方法 (1)action普通属性的访问方法 <s:property value="[n].pName"/> 从对象栈第n个对象开始查找pName属性的值: <s:property value="[0].pName"/>,表示从栈顶对象开始查找,而从栈顶对象开始查找又可以省略索引: <s:…
1.问题 提交页面: <h4>注册产品</h4> <form action="save.do" method="post"> pName:<input type="text" name="pName" /><br /> pDesc:<input type="text" name="pDesc" /><br /&…
1.配置一个最简单的action <action name="simple-action"> <result>/simple.jsp</result> </action> 没有class, 没有method,result也没有name属性,但是可以访问成功!肯定是struts2背后偷偷帮我们干了些什么. 2.struts-default.xml /struts2-core-2.3.28.jar/struts-default.xml <…
1.action扩展名 默认扩展名可以去/org/apache/struts2/default.properties中查看 struts.action.extension=action,, default.properties是struts2常量配置文件,比如struts.i18n.encoding=UTF-8.struts.objectFactory.spring.autoWire = name等等 2.自定义扩展名 当然不能去修改default.properties, 可以在struts.x…
1.ServletXxxAware接口 ActionContext和XxxAware接口对应,属于解耦的设计,但功能单一,我们能够获取到的只是struts2给我们返回的map.ServletActionContext和ServletXxxAware接口对应,属于耦合的设计,但功能强大,能够直接获取servlet相关的对象. ServletXxxAware同样是struts2依赖注入给Action类的设计,使用起来比ServletActionContext方便,比如多个action的方法,就不需要…
1.ServletActionContext ServletActionContext, 这个类继承自ActionContext, 所以它具有ActionContext的很多功能,不过更重要的是它提供了直接访问Servlet相关对象的功能,功能更强大,缺点是耦合程度提高了. HttpServletRequest.ServletContext.PageContext.HttpServletResponse. HttpSession需要从HttpServletRequest实例中获取,并没有提供直接…
1.XxxAware接口 ApplicationAware, RequestAware,SessionAware, ParameterAware.      struts2提供了这四个Aware接口用于Action类的实现,从而注入对应的application.request.session,parameter, 不过它们都是Map类型的.这和ActionContext一样是解耦的,即没有引入servlet相关的包,是在struts2内部的.      通过XxxAware接口的实现,可以方便的…
1.概念 ActionContext是action的上下文,它包括action执行所需要的对象.struts2对每一个action都会创建一个新的ActionContext实例,同Action一样,是线程安全的.ActionContext里面存放的是一些map,是对web资源的一些包装. 2.使用方法 package com.test.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; publi…
1.action      action表示一个struts2的请求! 2.Action类 能够处理struts2请求的类. (1)属性的名字需要与JavaBeans属性保持一致. 属性的类型可以是任意类型.从字符串到非字符串(基本数据类型)之间的数据转换可以自动发生. (2)必须有一个不带参的构造器 (3)至少提供一个供struts在执行这个action时调用的方法 (4)同一个Action类可以包含多个action方法. (5)struts2会为每一个HTTP请求创建一个新的Action实例…
1.官网下载struts2 struts-2.3.28-all.zip,这个包可谓应有尽有,以后全靠它了! 2.jar包怎么选?       (1)struts-2.3.28-all\struts-2.3.28\lib\*.jar,可以选这个目录下的所有jar包,不过是不是太多了?应该没有必要吧! (2)struts-2.3.28-all\struts-2.3.28\apps,这个目录是干嘛的?是一些例子啊,进去瞧瞧吧,有几个war包,解压一个看看! (3)struts2-blank.war,解…