我正在寻找一种将 URL 片段 (#) 中的值注入 bean(JSF) 的方法,就像注入查询参数值一样。我正在使用 Ben Alman 的 Bookmarkable jQuery 插件 ( http://benalman.com/projects/jquery-bbq-plugin/ ) 创建 URL 片段。我希望来自 prettyFaces 的自定义正则表达式模式可以成为解决我的问题的一种方法,但直到现在我一直没有成功。
(http://ocpsoft.com/docs/prettyfaces/snapshot/en-US/html_single/#config.pathparams.regext)
我想在这里定义我的情况,如果有人有想法,我很想尝试一下。
我正在使用
RichFaces:3.3.3,
Spring:3.0.2.RELEASE,
Hibernate:3.5.3-Final,
JSF:2.0.2-FCS,
PrettyFaces:3.0.1
Web 应用程序生成以下 URL,其中参数列在哈希 (#) 之后。这个想法是有一个基于 ajax 的 Bookmarkable URL。所以每次我点击一个改变系统状态的元素时,值都会通过ajax和重写hash后的URL发送到服务器。哈希后可以有 1 到 3 个参数,参数个数是可选的。
我的目标是,当用户为 URL 添加书签(带有哈希)并重新访问保存的页面时,页面应该将正确的值注入系统并在以前的状态下可视化页面(如查询参数)。
下面,我有一个正则表达式,可以捕获散列后的所有参数。
//URL:
http://localhost:8080/nymphaea/workspace/#node=b48dd073-145c-4eb6-9ae0-e1d8ba90303c&lod=75e63fcd-f94a-49f5-b0a7-69f34d4e63d7&ln=en
//Regular Expression:
\#(\w*\=(\w{8}-\w{4}-\w{4}-\w{4}-\w{12}))|\&(\w*\=(\w{8}-\w{4}-\w{4}-\w{4}-\w{12}))|\&(\w*\=\w{2})
我知道有些网站如何将 URL 片段发送到服务器端逻辑中,
- http://maps.yahoo.com/#mvt=m&lat=36.952736&lon=-95.84758&zoom=11&tt=starbucks&tp=1&ioride=us
- http://www.cbc.ca/video/#/Shows/Death_Comes_to_Town/ID=1365210427
无论如何将URL片段中的值注入服务器端bean?