1.泛型的概念.
泛型英文名为(Generic Type),从字面上就是通用化,一般化了的类型.
类似于类是对象的一种抽象,泛型可以说就是对类进行抽象.
2.泛型的语法
类型参数的形式化
在java5中利用<E>这样的语法来定义形式化类型参数.
public interface List<E> {
void add(E x);
Iterator<E> iterator();
}
以上代码中E就代表了一个形式化类型参数
类型参数的实际化
List<Integer> myIntList = new Linked ...
简要处理流程
HttpRequest-->ActionContextCleanUp(如果使用到sitemesh)->FilterDispatcher.doFilter(调用ActionMapper)->ActionMapper.getMapping(是否需要调用action处理页面请求)-->Dispatcher.serviceAction(调用ActionProxy包装的Action代理执行action)-->ActionInvocation.invoke(调用所有的before拦截器然后调用action本身的执行方法)-->如果有preresultlistener那么执行beforeRes ...
1.Handling File Uploads
采用FileUploadInterceptor实现文件上传操作.
定义struts.properties文件中的如下属性来实现一下参数的配置
struts.multipart.parser定义解析用户上传文件的库.
struts.multipart.saveDir定义用户上传文件保存的路径.
struts.multipart.maxSize指定上传文件的最大值设置.
2.HibernateAndSpringEnabledExecuteAndWaitInterceptor
该例子是对ExecuteAndWaitInterceptor的一个扩展 ...
1.What are the fundamental differences between Struts and JSF
Specifically, JSF is a "component" framework whereas Struts is an "action" framework.
总的来说,JSF,asp.net这种框架采用的是一种,类似于cs架构中的组件式,基于组建事件的编程风格.
而struts事基于action的框架,这里的action对于http来说应该可以理解为url,或者说是REST中的资源路径.
2.如何在页面上直接从流中显示图片.
faq中居然自己写了一个MyAc ...
1.Overview
类型转化在struts2中的主要作用是把页面上符合ognl定义的控件的名字的输入值映射到action的相应字段中.以删除在servlet时代需要经常做的request.getParameter操作,并且利用ognl表达式甚至可以直接把页面上字段的值直接注入到action声明的对象中,是这个过程能够自动化,使得代码更加的简洁,更OO,可以说hibernate是处理对象到数据库的双向转化,struts2就是处理对象到html页面的双向转化.
2.Working Sample
Action以及字段级别的类型转化
在action对应的目录下定义ActionClassName-c ...
1.Overview
支持国际化的模块:
1. the UI Tags
2. Messages and Errors from the ValidationAware interface (implemented by ActionSupport and ValidationAwareSupport)
3. Within action classes that extend ActionSupport through the getText() method
2.Resource Bundle Search Order(Resouce文件搜索规则)
1. Action ...
1.Using Annotations(利用java5的标记实现验证)
该方式的验证必须在class级别上声明@Validation()属性代码如下
@Validation()
public class SimpleAnnotationAction extends ActionSupport {
}
在字段的setter方法上定义验证的规则
field validation的声明方式
@RequiredFieldValidator(type = ValidatorType.FIELD, message = "You must enter a value for bar.")
...
1.主要功能&触发时间
该监听器主要在action的execute方法执行完以后,result.execute()方法执行前调用。
接口如下
public interface PreResultListener {
void beforeResult(ActionInvocation invocation, String resultCode);
}
在DefaultActionInvocation对应的调用如下
//判断是否还有拦截器未执行,如果还有则继续执行拦截器链
//这里通过把DefaultActionInvocation对象本身往后续拦截器中传递来实现int ...
1.主要功能
在Dispatcher对象init或者destroy的时候执行某些代码接口如下
public void dispatcherInitialized(Dispatcher du) {
// do something to Dispatcher after it is initialized eg.
du.setConfigurationManager(....);
}
public void dispatcherDestroyed(Dispatcher du) {
...
1.总览
action负责applicate state,result负责view状态的管理。
2.Chain Result
实现类为ActionChainResult.java
主要和ChainInterceptor配合用于Action Chaining
特点是把action的valuestack和prameters往下传。
3.Dispatcher Result
实现类ServletDispatcherResult
可选参数为location(jsp文件的路径),parse(location中的属性是否需要ognl解析,默认为true)。
location的解析通过StrutsRes ...
1.顾名思义,该功能的主要目的是执行一连串的action方法,并且执行过程中并不进行实际上的页面跳转。
定义action的result type为chain定义
可以定义属性的actionName(所要调用的acton的名字),
定义namespace属性,确定action所属的namespace,skipActions中所有的action都无条件的执行,method属性(定义所调用action对象的方法,默认调用execute).
在ActionChainResult中把前一个action的valuestack,parameter,chain_histroy拷贝到下一个action的的co ...
1.实现Interceptor interface接口
该接口有三个方法
init()
destroy()
intercept()
2.线程安全
由于interceptor是单例的,并不向action那样每个request都创建一个一个action对象所以不存在线程同步的问题。
3.继承AbstractInterceptor抽象类
该类实现了默认的init和destroy方法,直接实现intercept方法即可。
Alias Interceptor
用于在ActionChain中的不同action之间传递参数,把相同的参数用不同的别名来命名
<param name="aliases">#{ 'foo' : 'bar' }</param>
foo参数的值将被赋予别名bar
Chaining Interceptor
该拦截器把所有value stack上的对象(除了那些实现了Unchainable接口的)拷贝到当前执行对象中(Action).可以定义includes和excludes分别指定需要或者不需要拷贝的参数,该拦截器一般和chain result结合使用.详细配置如下。
< ...
irrespective
adj.
不顾 [不拘, 不问]的(of)
fake
n.
假货, 欺骗
malicious
adj.
怀恶意的, 存心不良的, 有敌意的, 预谋的
a malicious remark
怀有恶意的 语言
现代英汉词典overkill
n.
灭绝;过量杀伤
不必要的过度行动;矫枉过正
pertinent
adj.
有关的;适当的
descendant
n.
子孙, 后裔, 后代
现代英汉词典tremendous
adj.
巨大的;非常的;惊人的
handy
adj.
-ier, -iest
便于使用的;方便的
precedence
n.
优先, 居先
flavor
n.
味,味道
tedious 加入生词本
adj.
冗长的;沉闷的;令人厌烦的
in essence
本质上
novice 加入生词本
n.
新手;初学者 ...
1.Understanding Interceptors(理解拦截器的工作原理)
拦截器主要是为了完成action执行前的有些准备工作,以及action完成的有些扫尾工作。
拦截器可以中端action的执行过程。
拦截器定义在拦截器栈中,并且按照一定的顺序执行。
struts2拦截器的调用主要通过ActionProxy所代理的action对象来实现interceptor的调用。
2.Configuring Interceptors
<package name="default" extends="struts-default">
<interceptors>
...
1.最初也是最终的理想Zero Configuration
目前主要的原理就是通过java5提供的annotation机制把xml配置移动到实际的代码中,但是我认为这样做的好处有
便于测试,由于不存在xml文件,不需要再为了测试环境编写一分不同的xml配置文件,所有的配置已经都再代码里面了。
目前struts该功能还在测试中,主要是需要通过再web.xml中添加需要扫描的类目录,以及几个和xml文件中的element对应的annotation来实现。
2.Annotation
主要是和zero configuration配合使用。
包含了Action(namespace,parentpac ...
1.Ajax集成
struts2集成了对Ajax处理的支持,只需要对resulttype做处如下配置
<action name="text-result" class="actions.TextResult">
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
并且struts有多个开源ajax框架 ...
Architecture in a Nutshell(架构概要)
request->Servlet filter-->before interceptors->action-->preresultlistener->result->after interceptors-->response
其中核心部分是interceptors,action,result
Struts Tags in a nutshell(标记库概要)
标记库存在的主要意义就是减少页面代码,已经封装多个页面html元素到一个标记库中,以求最大化复用性。
Struts Configuration in a Nutshell
主 ...
heavy lifting == difficult work
consult
参考;查阅;咨询
I consulted George about buying a car.
我向乔治请教购买小汽车的事。
in a nutshell 简言之, 概括起来, 一言以蔽之
put sth. in a nutshell [喻]用几句话说明某事, 用一句话概括起来
handful 一把; 一撮
a handful of rice
一把米
acronym
n.
首字母简略词
portion
n.
一部分; 区划[段]
一份[股, 批, 部分], (饭菜 ...
1.Dependency of struts2
struts2最小依赖包
struts2-core.jar-->核心包。
xwork.jar-->xwork2依赖库
ognl.jar-->Object Graph Navigation Language(OGNL),el语言库。
freemarker.jar-->大名鼎鼎的模板生成器,文档解释说所有UI tag的模块都是基于该框架处理的。这点需要进一步深入解释。
commons-logging.jar-->log记录框架。
2.configuration of action in struts.xml
web.xml-->定义struts映射的 ...
1.在Visual Studio .NET中对源代码进行注释非常简单。高亮度显示需要注释的行,然后按Ctrl+K+C组合键添加注释。要删除注释,只需高亮度显示被注释的代码,并按下Ctrl+K+U组合键。
2.LinkButton控件则首先将表件发回到服务器,然后将用户导航到目标URL。
3. 因为sprocs是预先被解析的,对于复杂的查询更显得重要,其查询计划是预先优化的,因此调用查询过程比执行相同功能的SQL语句速度要快得多。
ISAPI过滤器(筛选器):IIS本身是不支持动态页面的,也就是说他仅仅支持静态HTML页面的内容,对于.asp .aspx .cgi .php等,IIS并不知道如果处理这些后缀标记,它就会把它当作文本,丝毫不做处理发送到客户端。为了解决这个问题,IIS有一种机制,叫做ISAPI的过滤器。它是一个COM组件。
ASP.NET服务在注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面(如*.ascx *.aspx等)。扩展启动后,就根据定义好的方式来处理IIS所不能处理的文件,然后把控制权跳转到专门处理代码的进程中,asp.net中是aspnet_isapi.dll。让这个进程 ...
ISAPI: 向web服务器插入某些组建,扩展功能,增强web服务器功能。
ISAPI: 扩展,win32的动态链接库,譬如aspnet_isapi.dll,可以把ISAPI扩展看作是一个普通的应用程序,它处理的目标是HTTP请求。
ISAPI: 过滤器,web服务器把请求传递给相关的过滤器,接下来过滤器可能修改请求,执行某些操作等等。
ASP.NET请求的处理过程:
基于管道模型,在模型中ASP.NET把http请求传递给管道中所有的模块。每个模块都接收HTTP请求,并有完全的控制权。一旦请求经过了所有的HTTP模块,最终被HTTP处理程序处理。HTTP处理程序对请求进行一些处理,并 ...
1.asp.net的请求过程,以及对应的处理请求的dll客户的请求页面由aspnet_isapi.dll这个动态连接库来处理,把请求的aspx文件发送给CLR进行编译执行,然后把Html流返回给浏览器 2.页面事件(按照事件的执行顺序排列)Page_Init:初始化值或连接 Page_Load:主要使用IsPostBack,该事件主要执行一系列得操作来首次创建asp.net页面或响应 由投递引起得客户端事件。在此事件之前,已还原页面和控件视图状态。 Page_DataBind:在页面级别上调用,也可在单个控件中调用。 DataBind_PreRender:数据绑定预呈现,恰好在保存视图状态和呈 ...
- 浏览: 6271 次
- 性别:

- 来自: 福建福州

- 详细资料
搜索本博客
最新评论
-
struts2实践- 结合jquery ...
不晓得有没有完整的代码,我现在弄的一头雾水的,不知道jquery的验证能不能与s ...
-- by long_jianxiu -
struts2实践- 结合jquery ...
jquery-validate的rules和messages分开写,如能合在一起 ...
-- by stworthy -
struts2实践- 结合jquery ...
看着不错, 本来就很烦struts的validator
-- by spiritfrog -
struts2实践- 结合jquery ...
是啊,现实开发中,总是很难直接套用strut2自带的那几个模板来实现验证,而且不 ...
-- by zl5897 -
struts2实践- 结合jquery ...
支持你的观点,感觉还是jquery表现力好点
-- by wangyazhen






评论排行榜