微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 从webapp更新url栏以表示当前状态

我想基本上做杰森要求的here

在一句话中,我希望url栏代表AJAX应用程序的状态,这样我就可以允许它为它添加书签,并允许用户使用浏览器中的后退/前进按钮返回到先前的状态.

对我来说(从杰森那里得知)的不同之处在于我使用的是JSF 2.0.
我已经读过JSF 2.0添加了使用get的能力,但我不确定使用它的正确方法.

谢谢您的帮助.

进一步澄清

如果我理解正确,为了能够在AJAX webapp中为特定状态添加书签,我将不得不使用location.hash.我对么?我试图在某种意义上实现类似gmail的行为,虽然应用程序是完整的AJAXified并且没有重定向发生,但我仍然可以使用后退/前进和书签(这就是为什么我希望从更新的URL栏更新AJAX应用程序本身,而不是通过重定向)

更新

刚发现this的类似问题

解决方法:

The difference for me (From what Jason asked) is that I am using JSF 2.0. I’ve read that JSF 2.0 added the ability to use get, but I am not sure what the correct way to use this.

请注意,这与维护Ajax状态不同.它通常由片段标识符(在URL中以#开头的部分,也称为hashbang)发生. JSF不为此提供内置组件/功能.到目前为止,我还没有看到一个组件库.但是,您可以在JSF中找到this answer开始使用自行开发的哈希片段处理器.

至于使用GET请求,只需使用< h:link>,< h:outputLink>或甚至< a>创建GET链接.您可以通过< f:param>在h:components中提供请求参数.例如.

<h:link value="Edit product" outcome="product/edit">
    <f:param name="id" value="#{product.id}" />
</h:link>

在product / edit.xhtml页面中,您可以定义要设置的参数和要在GET请求上执行的操作

<f:Metadata>
    <f:viewParam name="id" value="#{productEditor.id}" />
    <f:event type="preRenderView" listener="#{productEditor.init}" />
</f:Metadata>

在与product / edit.xhtml页面关联的请求或视图范围bean中 – 在此示例#{productEditor} – 中,您只需定义属性和侦听器方法.在模型中收集,转换,验证和更新所有属性之后,将执行侦听器方法.

private Long id;
private Product product;

public void init() {
    product = productService.find(id);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐