在struts2中,我们能够实现对action的全部方法进行校验或者对action的指定方法进行校验. 对于输入校验struts2提供了两种实现方法: 1. 採用手工编写代码实现. 2. 基于XML配置方式实现. 一.採用手工编写代码实现 1.手工编写代码实现对action中全部方法输入校验 通过重写validate() 方法实现. validate()方法会校验action中全部与execute方法签名同样的方法. 当某个数据校验失败时.我们应该调用addFieldError()方法往系统的f…
(1)有属性注入? 当一些属性不适合固定写入时适合使用这样的方法,对于一些使用特频繁的类或者方法,非常多类都会用到,那么使用属性注入会节省很多其它的力气.并且在设计的时候就能够提早的把该属性给定义出来. (2)哪些需求须要用到属性注入? 举几个比較实际的样例:日志功能.统一事务提交.当前用户附加信息的获取等等. (3)Struts2为Action中的属性提供了依赖注入功能.在struts2的配置文件里,我们能够非常方便地为Action中的属性注入值. 注意:属性必须提供setter方法. (4)…
Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并实现应用的功能.通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 封装应用状态:某些应用数据封装起来,使得视图只能通过接口获取对应的数据 响应状态查询:对应用的状态改变进行处理 暴露应用功能:暴露接口 通…
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件的上传与下载涉及到Java的IO操作,etc啊--女朋友打电话写不下去了,明天补! 2017年3月11日 经过了...重庆三日游.办公室三日游.辞职之后...终于有时间补上了!!! 最近一周可以说是上大学以来最爽的时候了,辞去了两年半的职务,主要还是因为那个狗屁老师啥都不懂,还想给你干活,下辈子吧!…
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一个老师曾经说过框架=反射+设计模式+配置文件,现在细想确实很有道理. 让Struts2运行起来首先需要导入核心包,核心包可以参考下载文件中的blank.war中的Jar包,具体需要引入的包如下: 接下来就需要配置文件来让Struts跑起来了.Struts2需要配置两个文件:web.xml和strut…
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官方提供的demo中拿到必要的jar就行. 在apps/struts2-blank项目下 2.数据库准备 /* Navicat MySQL Data Transfer Source Server : GaGa Source Server Version : 50549 Source Host : lo…
managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional i…
     5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 其中class属性中"solr"是org.apache.solr.schema这个包名的缩写.…
自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> </fieldT…
动态方法调用有三种方法: 1.同一Action多次映射,每个action标签的method对应要调用的方法. 当要调用的方法多了就会增加struts.xml文件的复杂性. 2.struts.DynamicMethodInvocation=true (struts.properties文件) 或<constant name="struts.enableDynamicMethodInvocation" value=true></constant(struts.xml文件)…
拦截器初探 昨天临睡觉之前看了看拦截器,也在昨天的学习笔记里面胡诌诌了几句,今天就来好好的会会拦截器这个东西.实际上拦截器是一种模块实现的机制<起码我是这么体会的>(至于说书里面说体现了AOP的设计思想-我连AOP是啥还没搞清楚好伐-),在struts1的版本里面,struts将所有的功能围绕着核心控制器来实现的,而到了Struts2,控制器不在承担过多的功能支持,将这些功能拓展交给拦截器来完成. 拦截器设计为在action之前或action之后执行,从系统的架构图也能看出来,除了系统核心的拦…
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html 本文作者:sushengmiyan ---------------------…
1.关于Struts2中的struts.xml文件中action设置 <!-- 它是一个通用action,此处的*表明它可以处理任意的请求--> <action name="*" > <!-- 此处的{1}代表前面第一个星号所匹配的字串 --> <result name="success">/WEB-INF/content/{1}.jsp</result> <!--跳转到*(所代表的任意字符)号页面-…
默认的命名空间“ namespace="" ”. 根命名空间 “ namespace="/" ”. <package name="test" extends="struts-default"> ,假设未指定命名空间,则命名空间默觉得 “ namespace="" ”. 默认命名空间里的Action能够处理不论什么命名空间下的Action请求. 比如,假设存在URL为/barspace/bar.a…
一.拦截器工作原理: 根据Struts2的工作原理图,拦截器在action执行前进行顺序调用,之后执行Action并返回结果字符串,再逆序调用拦截器.(结构类似递归方式...)大部分时候,拦截器方法都是通过代理的方式来调用的.Struts2的拦截器实现相对简单,当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器.事实上,我们之所以能够如此灵活地使用拦截器,…
Struts2的类型转换器   如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString   注册类型转换器 * 局部类型转换器,局部类型转换器只对当前Action起作用,需要提供如下配置文件: MyActionName-conversion.properties,MyActionName指需要使用转换器的Action名称 "-conversion.properties"固定字符串,…
参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门资料:http://wenku.baidu.com/view/91a63c18c281e53a5802fff8.html Struts是开源软件.使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间.如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,s…
Action是用于处理请求操作的,它是由StrutsPrepareAndExceuteFilter分发过来的. 1.Action的创建方式 1) POJO类(PlainOldJavaObjects简单的Java对象),不需要继承任何父类,实现任何接口 public class TestAction { public String execute() { return "success"; } } 这种方式是Struts2框架通过反射来实现的,步骤: struts2框架通过读取strut…
1.Struts2配置文件加载顺序: default.properties(默认常量配置) struts-default.xml(默认配置文件,主要配置bean和拦截器) struts-plugin.xml(配置插件) struts.xml(配置action或者常量等) struts.properties(常量配置) web.xml(配置JavaEE,如:监听器和过滤器) 2.Struts2配置文件详解 1)default.properties default.properties是Struts…
Struts2上传下载 文件上传 如果想使用HTML表单上传文件(一个或多个),那么必须把HTML表单的enctype属性设置成multipart/form-data,且method=post, 且使用<input type="file">. 在Struts里,我么使用FileUpload拦截器和 Jakarta Commons FileUpload 组件可以完成文件的上传. 步骤:1.在jsp中使用file标签,如果上传一个文件就写一个,多个文件的话使用多个file标签,…
Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的namespace,然后在包下寻找名为HelloAction的action,反射创建控制器HelloAction对象,调用method指定的方法hello,拿到返回值“success”,去result的配置节找success对应的页面(hello.js),呈现给用户. 2.Struts的架构,具体参考这里…
拦截器,在AOP中用于在某个方法或字段被访问之前,进行拦截,然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. Struts2中,拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个Action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取Action中可重用的部分的方式. 拦截器链:就是将拦截器按一定的顺序联结成一条链.在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用. 拦截器的实现原理…
一:创建项目,添加依赖包 二:在web.xml配置核心控制器 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-n…
目录 1. web.xml 2. struts.xml 3. struts.properties文件 4.注解式开发 5.与Spring框架集成的配置 主要涉及3个配置文件:web.xml.struts.xml.struts.properties 1. web.xml 任何参与了web应用程序的请求与响应动作,都必须借助web.xml文件来安装这个框架. struts2的web.xml配置可以参考 官方文档. 首先需要配置过滤器: <filter> <filter-name>str…
一.系统架构   Struts2的官方文档附带了Struts2的架构图. 从这张图能够非常好的去理解Struts2 关于图中的Key: Servlet Filters:过滤器链,client的全部请求都要经过Filter链的处理. Struts Core:Struts2的核心部分,可是Struts2已经帮我们做好了,我们不须要去做这个 Interceptors.Struts2的拦截器.Struts2提供了非常多默认的拦截器.能够完毕日常开发的绝大部分工作:而我们自己定义的拦截器,用来实现实际的客…
刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没学过以前的版本,所以不知道是从哪个版本开始不使用schema.xml的,其实内容都一样,搞不懂为啥要换个名字,而且内容格式是xml,但是文件名却没有.xml的后辍.个人感觉是吃饱了撑的. 为了学习方便,我是在windows下做的,以下{Solr.home}是指解压后的文件目录.在{Solr.home…
(1)准备资源文件,资源文件的命名格式例如以下: baseName_language_country.properties baseName_language.properties baseName.properties 当中baseName是资源文件的基本名.我们能够自己定义,但language和country必须是java支持的语言和国家.如: 中国大陆: baseName_zh_CN.properties 美国: baseName_en_US.properties 如今为应用加入两个资源文…
一.指定需要Struts 2请求后缀处理 我们是在违约前.action后缀访问Action. 事实上默认后缀是通过不断"struts.action.extension"进行更改.例如:我们可以配置Struts 2仅仅处理以.do为后缀的请求路径: <? xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Fou…
Struts2是一个用来来发MVC应用的框架,它提供了Web应用程序开发过程中一些常见问题的解决方案: - 对来自用户的输入数据进行合法的验证 - 统一的布局 - 可扩展性. - 国际化和本地化 - 支持AJAX - 表单的重复提交 - 文件的上传下载 ......... 搭建Struts2的环境: - 加入jar包:复制struts\apps\struts2-blank\WEB-INF\lib下的所有jar包到当前应用的lib目录下 - 在web.xml文件中配置struts2:复制strut…
这里是重点. Action接口 struts2 的Action可以是POJO 为了让用户开发的Action更加规范struts2提供了一个Action接口 ActionSupport基类 Struts2为Action接口提供了一个实现类 ActionSupport,定义了 表单域校验.错误信息设置和获得国际化信息相关一些方法 我们写的action可以有以下几种选择: Action 可以是 POJO 用户编写Action 可以实现Action接口    可以使用结果集常量字符串 用户编写Actio…