我对ICEfaces还比较新,但已经有JSF / Facelets和Java EE等方面的经验。
目前,除了使用一些实用标签(如outputStyle和outputDeclaration)之外,我并没有过多地使用ICEfaces,但即使如此,这也是非常不错的。
尽管我打算稍后使用一些AJAX功能,但我有一些h:forms(或ice:forms),我希望将它们发送为正常的JSF POST请求,而不是通过/block/send-receive-updates。原因是,我想使用一个过滤器,作用于请求的URI,如果所有内容都发送到/block/send-receive-updates,则这是不可能的。
有没有什么方法来做到这一点?
编辑:为了澄清我的意图:
我们正在开发的网站包括公开页面和一些只有注册会员才能访问的页面。 Servlet标准中定义的标准FORM安全机制相当不灵活,因为它只允许定义一个登录页面,当有人想访问某些受限内容时,就会显示该页面。因为我们还希望用户能够通过每个页面上可见的小型登录表单进行登录,所以我们开发了一个过滤器,它几乎像Web容器一样处理身份验证和授权。如果用户未经身份验证/授权,它将重定向到自定义登录页面,但也允许从后备bean验证用户。为了使其几乎透明地工作,它包装了HttpServletRequest以提供主体和用户角色。
当过滤器重定向到自定义登录页面时,它会将当前请求保存以便稍后“重放”,当用户成功验证后再执行该请求。为了做到这一点,过滤器必须能够检测到POST请求是否来自登录页面(因此是否已经验证/授权用户)。但是,如果每个POST都经过/block/send-receive-updates,则这种方法不再有效。
当然,我可以将登录页面排除在ICEfaces的处理范畴之外,但这意味着我无法在登录页面上使用任何ICEfaces / AJAX功能。