简要处理流程 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结合使用.详细配置如下。 < ...
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 主 ...
2008-03-20

Struts2 Core Developers Guide-tutorial

关键字: learning about struts2
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映射的 ...
myoldman
  • 浏览: 6272 次
  • 性别: Icon_minigender_1
  • 来自: 福建福州
  • 详细资料
搜索本博客
存档
最新评论