2010-12-15 52 views
0

在JBoss 4.2.3上使用JSF 1.2和RichFaces 3.3.1。从JSF页面登录(基于表单)

我刚刚开始使用JSF应用程序。它在大多数内容中使用XHTML文件,并且使用基于表单的身份验证登录的login.jsp,我了解的一些在JSF应用程序中很常见。不过,我现在需要包含来自常规页面的部分,其中包括具有RichFace样式的标题栏和右侧面板。我已经尝试了数十种组合方式将Rich标签放入登录页面,同时仍然允许提交通过j_security_check,但至今没有任何工作。有没有办法做到这一点?

回答

0

只需将login.jsp转换为login.xhtml即可。请求来自j_security_check并不重要。您可以在JSF/Facelets页面中使用纯HTML。

+0

嗯,有趣的是,即使我转换它(更改标题,取出scriptlet,修复非严格的HTML语法等),我遇到了两个问题之一。如果web.xml将form-login-page设置为login.xhtml,则登录过程有效,但顶部面板的ui:include不起作用。如果web.xml使用login.jsf,则使用ui:include作品,但不会导入丰富样式类,而是继续访问所请求的页面(home.jsf),它会显示spacer.gif.jsf(an而不是空文件)。 spacer.gif是从登录页面上载入的最后一张图片,但它对我来说仍然没有意义。 – 2010-12-16 01:18:48

+0

您应该在FacesServlet的映射中定义登录页面,即'login.jsf'是正确的。 CSS问题听起来像是一个绝对/相对路径问题。隔离片对我来说完全没有意义。你是如何构建表单的?你刚用过

对吗? – BalusC 2010-12-16 01:54:42

+0

它是:<形式方法=“邮报”行动=“j_security_check” NAME =“LoginForm的”>添加到混乱,如果我直接进入登录页面,也就是我的网址,如http:// myhost的/ MyApp的/ login.jsf,那么RichFaces样式将被正确引入。但是,如果因为容器管理器安全性而进入登录状态,即我的URL类似于http://myhost/myapp/home.jsf,并且home是受保护的页面,那么页面源代码看起来是相同的,并且具有相同的RichFaces添加的链接和脚本标签。但深入到这些引用的内容显示了我的HTML,而不是预期的CSS和JS的重复。 – 2010-12-16 17:45:20