Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF:具有可视范围的书签功能_Jsf_Url_Parameters_Postback - Fatal编程技术网

JSF:具有可视范围的书签功能

JSF:具有可视范围的书签功能,jsf,url,parameters,postback,Jsf,Url,Parameters,Postback,我正试图让我的应用程序成为“可书签的”,我正在使用视图参数来实现它 我认为我仍然没有找到正确的方法来在JSF中正确地完成它,即使在阅读了很多其他内容之后 我的问题是get参数在任何非ajax回发后丢失,我的意思是,参数值仍然在bean中设置,并且应用程序工作正常,但是它从URL中删除,使得URL无效 例如,有一个URL,比如,一旦该页面执行了非ajax回发(例如,用于上传数据),URL就会变得公正。该应用程序继续正常工作,但链接不再是“可书签的” 有没有办法防止非ajax回发从URL中删除vie

我正试图让我的应用程序成为“可书签的”,我正在使用视图参数来实现它

我认为我仍然没有找到正确的方法来在JSF中正确地完成它,即使在阅读了很多其他内容之后

我的问题是get参数在任何非ajax回发后丢失,我的意思是,参数值仍然在bean中设置,并且应用程序工作正常,但是它从URL中删除,使得URL无效

例如,有一个URL,比如,一旦该页面执行了非ajax回发(例如,用于上传数据),URL就会变得公正。该应用程序继续正常工作,但链接不再是“可书签的”

有没有办法防止非ajax回发从URL中删除viewParams

我的用例是能够为页面添加书签以编辑对象,在那里我需要能够上传数据(如果没有,我就不会使用非ajax回发)。我知道,如果我想将页面添加为书签,只查看对象的数据,我就不需要任何回发,但这不是我的情况

我也可以用相同的参数重定向到同一个页面,让应用程序重新创建视图范围的bean,但是我真的看不到比请求范围的bean有什么好处

非常感谢您的任何建议。

这种行为是“故意的”。
生成一个HTML
元素,其中包含一个
操作
URL,不包含任何视图参数。同步POST请求恰好提交到该URL,从而在浏览器的地址栏中得到反映。如果您打算在URL中保留视图参数,而使用ajax不是一个选项,那么您基本上需要创建一个自定义,该自定义将覆盖视图参数以包括视图参数。
使用此方法生成
操作
URL

public String getActionURL(FacesContext context, String viewId) {
    String originalActionURL = super.getActionURL(context, viewId);
    String newActionURL = includeViewParamsIfNecessary(context, originalActionURL);
    return newActionURL;
}
或者,由于您基于已经使用的注释,您也可以使用its,它基本上扩展了
,并带有
includeViewParams
属性,其工作原理与
中的相同


...
这样,所有
值都将以动作URL的形式结束

另见:

可能是@BalusC的复制品:谢谢,你再次让我的无知显露出来;),在我看来,由于我需要上传数据,唯一的方法就是实现我自己的ViewHandler。。。但是很好,我已经在使用OmniFaces了,我只是还没有发现这个特性!请写一个答案,它就行了!这也解决了你的问题,不客气。我把它作为答复转寄了出去。
<o:form includeViewParams="true">
    ...
</o:form>