我知道在客户端(javascript)你可以使用windows.location.hash但无论如何都无法从服务器端访问.
我正在寻找一种方法将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将值发送到服务器,并在重写哈希值后将URL发送到服务器.散列后可以有1到3个参数,参数个数是可选的.
我的目标是,当用户为URL(带有哈希)书签并重新访问已保存的页面时,页面应该将正确的值注入系统并在之前的状态(如query-parameter)中可视化页面.
下面,我有一个正则表达式,可以捕获哈希后的所有参数.
//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})
Run Code Online (Sandbox Code Playgroud)
我知道有些网站有些如何将URL片段发送到服务器端逻辑,
无论如何将URL片段中的值注入服务器端bean?
URL可以有一个标签,用"#"符号分隔,位于URL参数之后.例如http://example.com/foo/bar.jsp?p1=v1#test_label
我希望label是request.getQueryString()的一部分,也是request.getRequestURL().toString()的一部分.但它似乎并不存在.
有没有办法从服务器端的HttpServletRequest中检索标签值?
在Java Web项目中,如何在URL请求中获取(如果可能)"HTTP锚点"部分?例如,当请求URL为http:// localhost:8080/servlet/page.htm?param1 = value1¶m2 = value2#section时,我希望能够识别该#section部分.
public void doGet
(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// ...
System.out.println("QueryString = " + request.getQueryString());
// ...
}
Run Code Online (Sandbox Code Playgroud)
上面的例子中产生的子前述的#,在这种情况下:param1=value1¶m2=value2.有没有办法在符号后提取URL的一部分#?
如果这有用,我正在使用Apache Click框架.
我需要从请求中获取所有参数,包括"#"之后的内容.示例:request:http:// myserver/m#q = abc 我需要我的服务器获取"#"之后的所有参数,因为它们在"?"之后的位置 我怎样才能做到这一点?10倍,Koby
在我的项目中使用LightBox机制时,我得到了一个URL http://nhs/search-panel.php#?patientid = 2 我需要通过GET机制收集这个问题,这可能在PHP中吗?