- 浏览: 355879 次
- 性别:
- 来自: 沈阳
最新评论
-
sanrenxing_1:
GoEasy 实时推送支持IE6-IE11及大多数主流浏览器的 ...
极光推送(JPUSH)--- 消息推送 -
QuarterLifeForJava:
如果带有中文路径的话要写为:
URLDecoder.decod ...
获取类根路径及jar包路径 -
whyxy007:
请问楼主放上去的这张图就是最后需要安装的所有的包吗?还是说需要 ...
cordova 开发环境搭建
文章列表
设计模式的理解--策略模式
- 博客分类:
- OOD
策略模式: 定义了算法族,分别封装起来,让他们之间可以相互替换,让算法的变化独立于使用算法的客户。
个人理解:
需要做一件事情,但事情的内容是不确定的,可能是事情A,可能是事件B,由某些条件决定
在程序中体现为:
public class Person {
public void doOneThing(事件类型){
if(事件类型 ==事情A){
//这样做
}else if(事件类型 ==事情B){
//这样这样做
}else {
//.......
}
}
使用继承可以做到:
1.代码的复用
2.对外部调用类,呈现多态, 即变化
3.父类代码的修改可以影响所有子类(子类未覆盖父类方法情况下)
1.抽取所有子类 中相同的(通用的)的功能,形成独立的方法,放到父类里,利用继承的特性,所有子类自动具有该方法的能力。
对于某些不需要些方法的的子类,在子类中可以选择覆盖该方法而形成空方法,或方法内抛出异常等。
对于某些需要该方法而与父方法语义不完全相同的,可以选择覆盖父类方法
2.继承关系中,部分子类中都有相同的(通用的)功能,则可以抽取而形成独立的方法置于新建的子类中,需要该功 ...
1. WEB-INF/lib 下添加SLF4J及 logback的 jar包
SLF4J下载地址:http://www.slf4j.org/download.html
logback下载载址:http://logback.qos.ch/download.html
jar包名:logback-access-1.1.2.jar,logback-classic-1.1.2.jar,logback-core-1.1.2.jar,slf4j-api-1.7.7.jar
2.在web.xml中配置使用SLF4J
<filter>
...
logback 日志
- 博客分类:
- 日志
官方文档:http://logback.qos.ch/manual/index.html
logback will try to configure itself using the files
logback-test.xml or logback.xml if found on the class path
日志输出级别(level):
TRACE < DEBUG < INFO < WARN < ERROR.
Result
- 博客分类:
- struts 2.3.16
Action方法被调用后,返回结果字符串,用它来匹配xml中定义的resultType的name属性,如果匹配上则使用该Result来处理结果:渲染页面、下载文件等等。
public Result createResult() throws Exception {
if (explicitResult != null) {
Result ret = explicitResult;
explicitResult = null;
return ret;
}
...
Interceptor 作用:在Action执行前或执行后,执行某些代码,也以决定是否继续调用其它Interceptor及Action.
public class TestInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
//在之后的Interceptor和Action执行前,可以执行某些代码
...
Struts 容器中的Bean
- 博客分类:
- struts 2.3.16
1.启动需要的Bean:
builder.factory(ObjectFactory.class, Scope.SINGLETON);
builder.factory(ActionFactory.class, DefaultActionFactory.class, Scope.SINGLETON);
builder.factory(ResultFactory.class, DefaultResultFactory.class, Scope.SINGLETON);
builder.factory(InterceptorFactor ...
<struts>
<!--用于对bean的定义,置于Contatiner中-->
<bean type="类型" name="实现类名称(为空则取默认值default)" class="实现类全路径" static="true/false(是否只是静态注入)" scope="default|request|session|singleton|thread"/>
<const ...
ContainerProvider 功能
1、处理XML中bean元素:调用ContanerBuilder.factory方法,设置实现类的与工厂的关系,以便Container能够实现类的创建并注入依赖。
2、处理多个properties文件及xml文件中的contstant元素:将所有属性与值关系都存入ContainerProperties。
(ContainerProperties的constant方法会调用ContanerBuilder.constant方法注入常量工厂,以便bean中需要常量注入时使用)
PackageProvider
- 博客分类:
- struts 2.3.16
PackageProvider 用于将struts xml中的package元素转成PackageConfig对象。
由DefaultConfiguration 调用PackageProvider.loadPackages()方法,生成多个PackageConfig对象。
由DefaultConfiguration 对PackageConfig对象处理生成RuntimeConfiguration。
RuntimeConfiguration在struts处理请求流程中被使用,struts解析请求的url而生成namesapce 和 actionName,从RuntimeCo ...
Validator
- 博客分类:
- struts 2.3.16
对Action中属性值进行校验,如果Action扩展了ValidationAwareSupport(或实现了ValidationAware),则Action.addActionError(String anErrorMessage) 或 Action.addFieldError(String fieldName, String errorMessage) 被调用,来保存校验失败的信息。
消息国际化i18n
- 博客分类:
- struts 2.3.16
struts 国际化资源文件的分成两类:
1.全局的国际化资源文件
默认加载的:org/apache/struts2/struts-messages
配置加载的 struts.xml中配置:
<constant name="struts.custom.i18n.resources"
ResourceBundle 用于加载properties文件,并通过key获取文件中的值。
通过静态方法实例化ResourceBundle:
static ResourceBundle
getBundle(String baseName, Locale locale)
baseName 由两部分组成:类路径+properties文件的基本名称
匹配的properties文件名依次为:
properties文件的基本名称+"_"+locale.getLanguage()+"_"+locale.getCountry+".p ...
Ognl 中NullHandler
1.用于方法调用返回值为null时的处理,可以生成一个对象代替方法返回值。
2.用于属性取值时返回值为null时的处理,可以生成一个对象为该属性赋值再返回。
举例:
如前台页面提交user.name=yanlei,但Action中的user对象为null,则可以新建user对象,赋给Action,再把user对象的name属性赋值=yanlei.
Struts 加载扩展的NullHandler :
Struts 中在OgnlValueStackFactory中调用OgnlRuntime.se ...
Ognl 中MethodAccessor 用于调用类实例的方法或类的静态方法
Struts 加载扩展的PropertyAccessor :
Struts 中在OgnlValueStackFactory中调用OgnlRuntime.setMethodAccessor(Class class,MethodAccessor 实例)方法来加载Struts中定义的MethodAccessor。
在OgnlValueStackFactory 实例化之后,注入Containter时:
@Inject
public void ...