JSF ViewHandlerWrapperは、NullPointerExceptionが発生します
質問
私は私がコード化されたことJSF ViewHandlerWrapperで少し問題があります。これは、ほとんどの時間の罰金に動作しますが、時々私はクロサギ科の非常にコアからNullPointerExceptionが取得されますので、私は正しく私のViewHandlerWrapperを実施しているか不思議に開始します。
public class TokenViewHandler extends ViewHandlerWrapper {
private ViewHandler parent;
public TokenViewHandler(ViewHandler parent) {
this.parent = parent;
}
@Override
public ViewHandler getWrapped() {
return parent;
}
@Override
public void renderView(FacesContext context, UIViewRoot viewToRender) throws IOException, FacesException {
final String token = UUID.randomUUID().toString();
findAndModifyForms(viewToRender, token, context);
getWrapped().renderView(context, viewToRender);
}
private void findAndModifyForms(final UIComponent component, final String token, final FacesContext ctx) {
if (component instanceof UIForm) {
final HtmlInputHidden hidden = (HtmlInputHidden) ctx.getApplication().createComponent(HtmlInputHidden.COMPONENT_TYPE);
hidden.setValue(token);
component.getChildren().add(hidden);
} else {
for (UIComponent tempComponent : component.getChildren()) {
findAndModifyForms(tempComponent, token, ctx);
}
}
}
}
コードから、あなたはすぐに、私はそれぞれのフォームビューでのへのUUID値との inputHidden の-componentを追加したいことを実現します。
私はそれがExceptionHandlerWrapperのように見えるが、私は時折NPEを取得するので、私のViewHandlerを使用しなければならないことを前提とViewHandlerWrappersのための任意の良い例を発見していないとして、私は何かが間違っていると仮定し、私はそれを見るように見えることはできません。
所属していません StackOverflow