我使用JSF 2 PrettyFaces,也是<h:link>和<f:param>标签广泛地获得可收藏的页面(这是伟大的最终忘记在JSF应用程序所有的POST请求).
但是,其中一些链接只会更改页面的一小部分(主要是当用户停留在同一视图中时),因此发送ajax请求会更好.但是,<f:ajax>不能用<h:link>,只是<h:commandlink>.我也可以使用commandlink以多种方式发送参数,但在这种情况下,URL在请求后保持不变.因此它与页面内容不同步,并且不可刷新.
我已经看到使用链接发送GET和ajax请求(在使用ajax修改页面时指向新URL)的网站,但到目前为止我还没有找到任何解决方案.
在ajax请求完成后(或用户点击时),我可以用jsf以某种方式刷新URL吗?或者我是否必须使用一些外部JS库?
编辑:这里需要的JS库是新的JavaScript History API.更多信息. 我猜JSF目前不使用这个API.但是我仍然从JSF开发人员的角度对这个问题感兴趣.
此外,它是否计划在未来发布JSF?结合<f:ajax>使用<h:link>将是一个完美的解决方案.
我最近将Glassfish从3.1.2更新到4.0,并希望在我的应用程序中使用我之前使用的基于FORM身份验证的JDBCRealm.密码在数据库中使用SHA-256进行哈希处理(这是默认的摘要算法选项).
该领域具有在此Glassfish版本中必需的属性:密码加密算法.相当令人难以置信的是,官方的Glassfish文档说它是可选的,并且输入字段下的注释表示将它留空是一种风险,但是你不能将它留空,因为它是强制性的.
无论我在此属性中设置什么,我都无法登录之前正在运行的应用程序.(对于新注册的用户和老用户都是如此.)我谷歌搜索了好几天但找不到这个字段的选项.有什么选择?
另外,我正在使用Glassfish和MySQL.Glassfish是否将加密的散列密码发送到数据库,或者它只是MySQL的一些指令,用于存储带有这种加密的散列密码?
这个问题对我有所帮助,但没有解决我的问题.
更新:实际上,我不使用经典的基于FORM的身份验证,而是使用程序化登录的自定义JSF表单HttpServletRequest#login(),但我不认为这个问题很重要.