求助:如何中断jsf中多个自定义标签中的其他标签

08-12-30 eelaix65
问题描述:

在我开发的项目中一个JSF页面有多个facelet自定义标签或者自定义组件,

我在其中一个标签中进行判定,如果符合条件,我会自标签中sendredirect到另一个页面,

经实测发现,虽然能跳转成功,但是后面的标签还是会继续解析。

JSF页面:

<my:checklogin />
<my:tag2 />
<p>

checklogin标签代码:

HttpSession session = (HttpSession) ctx.getFacesContext().getExternalContext().getSession(false);
if (session==null){
log.error("Port.ERROR: session is null, redirect to dologin.");
response.sendRedirect(ctx.getFacesContext().getExternalContext().getRequestContextPath()+"/dologin?jumpto="+pagestr);
response.flushBuffer();//不起作用---------2222
return;
}
<p>

我希望:如果checklogin中进行了sendRedirect以后,my:tag2就不再解析,运行。

但实际上tag2还是运行了。

请大家讨论如何实现?

应该在2222处加什么代码?

谢谢。

banq
2008-12-30 15:45
记得有两种重定向方式sendRedirect是属于需要客户端重新请求的那种,那么就肯定要解析标签。

freebox
2008-12-31 10:09
JSF么?和普通JSP应该是不一样的,有生命周期的概念,很可能是解析完之后再渲染的。好像有个“立即”的概念,跳过其它周期直接进入视图,不知道对这个问题有没有用。反正JSF我是没学好,用的也都是极简单的功能。

猜你喜欢