2012-03-29 4 views
0

EL呼び出しが何も返さないときに例外を強制することはできますか?ELを使用して空の属性でフェイル・ファーストする最も簡単な方法は?

べき私はELが提供する便利な$ {...}表記を好むが、私は例外をスローするpageContext.findAttribute(...)(つまり、ELは基本的にIIRC何だ)へのすべての単一の呼び出しを希望属性(または空の文字列を含む属性)はありません。

私はELを使い続けてもいいですか、それとも別のものを使うべきですか?

答えて

1

1つのオプションは、独自のELResolverを作成することです。おそらくScopedAttributeELResolverを拡張し、getValueを上書きすることができます。

public Object getValue(ELContext context, Object base, Object property) { 
    Object value = super.getValue(context, base, property); 
    if (context.isPropertyResolved() && (value == null)) { 
     throw new PropertyNotFoundException("Scoped attribute not found"); 
    } 
    return value; 
} 

、リゾルバの登録ServletContextListenerを作成し、contextInitializedに、次のような何かをするために:

JspFactory.getDefaultFactory().getJspApplicationContext(sce).addELResolver(resolver); 
関連する問題