form 标签可以被映射到一个属性的属性 manager.java package com.atguigu.struts2.model; import java.util.Date; public class Manager { private String name; private Date birth; public String getName() { return name; } public void setName(String name) { this.name = name;…
1.     Struts2中的类型转换 我们知道通过HTTP提交到后台的数据,都是字符串的形式,而我们需要的数据类型当然不只字符串类型一种.所以,我们需要类型转换! 在Struts2中,类型转换的概念除了用于将界面传递过来的字符串转换为特定的类型(convertFromString)之外,还可以用于将特定的类型转换为字符串(即当我们在JSP中要把某种类型的对象呈现的时候,要将它转换为字符串来显示)(converterToString). 在Struts2中,支持全局类型转换和局部类型转换两种方…
Struts2的Action就是一个普通的POJO对象,它和Web对象request.response.session和application没有耦合在一起,这样便于单独测试Action,那么我们在Action中如何访问 这些web对象呢? 访问这些web内部对象有2种方式: 1.直接访问Web对象 Struts2框架提供org.apache.struts2.ServletActionContext辅助类来获得web对象.HttpServletRequest request = ServletA…
类型转换失败: 若 Action 类没有实现 ValidationAware 接口: Struts 在遇到类型转换错误时仍会继续调用其 Action 方法, 就好像什么都没发生一样. 若 Action 类实现类 ValidationAware 接口(一般继承ActionSupport类就可以了,因为这个默认的Action类已经实现了我们所需的ValidationAware接口):Struts 在遇到类型转换错误时将不会继续调用其 Action 方法:  Struts 将检查相关 action 元…
Struts2中的OGNL表达式语言是对Xwork的OGNL的封装.我们要理解一下几点: 1. Struts2中将ActionContext作为OGNL的上下文环境(ActionContext内部含有一个Map对象) 2. Struts2中的OGNL表达式语言的根对象是一个ValueStack,ValueStack中的每一个对象都被视为根对象. Struts2框架将实例化的Action对象放入ValueStack中,如果是Action链,则多个Action都存在于ValueStack中.而Val…
一.struts2对异常的处理 1.自定义局部异常: <action> <exception-mapping result="sonException" exception="java.lang.ArithmeticException"></exception-mapping> </action> 2.自定义全局异常: <!-- 配置全局异常处理 --> <global-exception-mappi…
简单的demo: s:iterator 标签有3个属性:value:被迭代的集合id   :指定集合里面的元素的idstatus 迭代元素的索引 1:jsp页面定义元素写法 数组或list <s:iterator value="{'1','2','3','4','5'}" id='number'> <s:property value='number'/>A </s:iterator> 打印结果为: 1A2A3A4A5A 2:索引的用法如果指定了sta…
在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态方法getContext()获取当前Action的上下文对象.有了这个对象我们想获得其他几个对象就好办了 ActionContext ctx = ActionContext.getContext(); Map session = ctx.getSession(); 细心的朋友可以发现这里的sessi…
我们在学习web编程的时候,一般都是通过requet.session.application(servletcontext)进行一系列相关的操作,request.session.和application他们都是web开发最常用和最实用的对象,有了它们可以大大方便开发人员进行开发和操作.但是在struts2中,基本都是action,这些个方法都是没有requet.session.application,所以如何获取这几个常用对象,也成了大家都比较关注的问题,下面我就来演示下,如何在struts2中…
struts2中,OGNL访问值栈的时候查找的顺序是什么?请排序:模型对象.临时对象.固定名称的对象.Action对象 解答:struts2的值栈排列顺序为:1).临时对象:2).模型对象:3).Action对象:4).固定名称对象(如#application, #session, #request等对象).…
1.Java的数据类型分为三大类 布尔型,字符型和数值型 其中数值型又分为整型和浮点型 2.Java的变量类型 布尔型 boolean 字符型 char 整型    byte,short,int,long 浮点型 float,double 3.数据类型转换 Java中数据类型转换分为三种,简单数据类型转换,字符串与其他类型转换,其他实用数据类型转换 (1)简单数据类型转换 在Java中,整型,实型,字符型被视为简单数据类型. 这些类型级别从低到高:(byte,short,char)-> int…
Struts2对数据的类型转换 一.Struts2中自带类型转换拦截器 Struts2内部提供了大量转换器,用来完成数据类型转换的问题,有如下 * boolean 和 Boolean * char和 Character * int 和 Integer * long 和 Long * float 和 Float * double 和 Double * Date 可以接收 yyyy-MM-dd 格式字符串 * 数组 可以将多个同名参数,转换到数组中 * 集合 支持将数据保存到 List 或者 Map…
题记:写这篇博客要主是加深自己对参数对象的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. Action中三种传递并接受参数: 1.  在Action添加成员属性接受参数 例如请求的URL地址: http://localhost:8080/Struts2_0700_ActionAttrParamInput/user/user!add?name=a&age=8 其中传递了两个参数:name和age,其值分别为:a.8,此Action执行的是add()方法. 那我们只要在user这…
今天又学到了一个新的东西,就是struts2的类型转换. 为什么要类型转换? 今天我就要传一个点的坐标给你,保存时用一个自定义的Point类来保存. 因为在表单里面传过去的是字符串,如“12,23”,要把它存进Point类,就必须进行类型转换.将字符串用“,”截取,然后第一部分赋值给x,后一部分赋值给y. 首先设计输入页input.jsp <s:form action="converter"> <s:textfield name="point" l…
笔者不知道该用哪个词来形容ValueStack.ActionContext等可以在Struts2中用来存放数据的类.这些类使用的范围不同,得到的方法也不同,下面就来一一介绍. 声明:本文参考Struts2版本为2.3.1.2,内容仅供参考,限于笔者水平有限,难免有所疏漏,望您能友善指出.本文发表于ITEYE,谢绝转载. 1. ValueStack ValueStack在中文版的<Struts2深入浅出>一书中译作“值栈”.其本身数据结构是一个栈,使用者可以把一些对象(又称作bean)存入值栈中…
Struts2提供的客户端校验 尽管这种支持比较弱,但采用Struts2中的客户端校验时需要注意以下几点 1..将<s:form validate="true">的validate属性设置为TRUE 2..不能将<s:form theme="">的theme属性设置为simple 3..建议将<s:form/>的action和namespace属性分开写 4..可以在页面中使用<s:head/>标签来引入样式 5..最…
1) struts-default.xml 这个文件是struts2框架默认加载的配置文件.它定义struts2一些核心的bean和拦截器. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"     "h…
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.0框架中内置了类型转换器,可以很方便的实现在八大数据类型.Date类型之间的自动转换:此外也可以根据自己的需求自定义数据转换类.如下: 首先看一下项目工程中的目录 1.在新建的web project项目的web Root中新建input.jsp,用来输入用户名和密码 <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%…
Struts2当中数据封装的三种机制:属性驱动.标签驱动.模型驱动.下面来一一介绍. 一.属性驱动 1.需要提供对应属性的set方法进行数据的封装. 2.表单的哪些属性需要封装数据,那么在对应的Action类中提供该属性的set方法即可. 3.表单中的数据提交,最终找到Action类中的setXxx的方法,最后赋值给全局变量. 4.注意:Struts2的框架采用的拦截器完成数据的封装. 5.注意:这种方式不是特别好:因为属性特别多,提供特别多的set方法,而且还需要手动将数据存入到对象中. 6.…
今天分享的是Struts2框架中的一种ognl表达式语言,主要分两个目标去学习    1.理解struts2传值的优先级    2.ognl与el的区别 一:ognl表达式语言简介 OGNL的全称是Object Graph Navigation Language(对象图导航语言),它是一种强大的表达式语言,让你通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能. 1.1:简单对 对象图导航语言举例分析    假如现在项目中有两个…
OGNL(Object-Graph Navigation Language)全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能. ognl的特点: a.支持对象的方法调用,形式,eg:objName.methodName(); b.支持静态类的方法调用和值访问,expression:@[类全名(包括包路径)]@[方法名|值名],eg:@tutorial.MyConstant@Ap…
Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方jar包名称 本jar包是否为第三方包 Struts 2.3.4 的 核 心 包 struts2-core -2.3.4.jar 2.3.4 struts2-core -2.3.4 struts2的核心包 org.apache.struts2.dispatcher.ng.filter.StrutsPr…
  今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforCangra.setSubDate([Ljava.lang.String;) 这类异常信息在以前是处理过的,按照以前的思路在eclipse的调试模式下看看具体的情况,不过这次比较奇怪,根本没进入到对应的Action类中就抛出了此异常信息,进一步查找发现,在调用拦截器方法的时候就抛出了此异常信息,还有没…
核心包: (后面数字是版本号,不同struts2版本,数字可能不一样.) struts2-core-2.1.8.1 struts2的核心jar包,不可缺少的 xwork-core-2.1.6 xwork的核心包,由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类(2.5没有这个的单独包,原来的xwork单独的jar已经合并到了struts-core的jar包中了,打开struts-core jar包 就发现了) aopalliance-1.0 这个包为AOP提供了最普通和通…
Struts2中的EasyUI 一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常用属性: 常用方法.事件: 使用tree插件实现树形菜单: 客户端页面关键代码: ① 引入easy UI插件及样式文件 ② 定义用来配置树形菜单的区域 ③ 使用tree方法加载远程树形菜单数据 <script type="text/javascript"…
在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换.因为子类拥有比父类更多的属性.更强的功能,所以父类转换为子类需要强制.那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的. 当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了.在Java中我们可以通过…
所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public class User { private int id; private String username; private String password; private int age; private String address; public String getUsername() { ret…
struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" name="form1"> 用户名:<s:textfield name="username"/><br/> 密 码:<s:password name="password"/><br/&g…
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper它将会将控制权限交给ActionProxy d) ActionProxy将会通过ConfigurationManager来查找配置struts.xml       …