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 如何禁用ViewState?_Jsf_Jsf 2_Viewstate - Fatal编程技术网

Jsf 如何禁用ViewState?

Jsf 如何禁用ViewState?,jsf,jsf-2,viewstate,Jsf,Jsf 2,Viewstate,我是从MS和ASP.NET进入Java世界的,希望在Java中找到类似于ASP.NET的基于组件的HTML框架。在回顾了互联网上的大量链接之后,看起来JSF2(带facelets)是最好的匹配(顺便问一下,这是真的吗?还是有其他更好的选择?) 我现在在评估过程中遇到的问题是正确使用JSF的视图状态。我的最终使用场景是集群WEB服务器,我不会有任何会话/服务器存储对象,也不会将网络带宽用于虚拟视图状态(请参见另一个人的相关问题) 我学习了一些JSF2教程,设置javax.faces.STATE\u

我是从MS和ASP.NET进入Java世界的,希望在Java中找到类似于ASP.NET的基于组件的HTML框架。在回顾了互联网上的大量链接之后,看起来JSF2(带facelets)是最好的匹配(顺便问一下,这是真的吗?还是有其他更好的选择?)

我现在在评估过程中遇到的问题是正确使用JSF的视图状态。我的最终使用场景是集群WEB服务器,我不会有任何会话/服务器存储对象,也不会将网络带宽用于虚拟视图状态(请参见另一个人的相关问题)

我学习了一些JSF2教程,设置javax.faces.STATE\u SAVING\u METHOD=client后,将ViewState生成为440个字符的HTML(Mygod,页面只包含一个虚拟文本输入和一个提交按钮)。在“提交后发布”中,我只需要文本输入的文本(10个字符),而不需要虚拟视图状态(440个字符)

所以问题是-是否可以在JSF2中禁用视图状态

相关链接:

  • ASP.NET中的用例-“禁用页面的视图状态”:

  • 对stackoverflow没有帮助的回答:

更新:相关链接(来自以下评论):

  • “无状态JSF”:


JSF是一个基于组件的框架,具有很强的状态性,因此您需要在某个地方使用状态,或者通过网络发送到客户端并再次发布,或者在服务器端。因此,如果答案是“否”,则无法禁用视图状态。但是,您可以将其最小化—但是某些状态始终需要存储。这是相关的

如果您正在寻找一个不那么有状态的Java web框架,那么可以考虑一些基于动作的框架,比如Struts或Stripes,这样您就可以在请求范围内工作,而不需要在回发上显示(或重建)组件树。Play框架得到了广泛的关注,它是专门针对RESTful架构设计的。我自己没有这方面的经验,但你可能想调查一下。摘自Play网站:

简单无状态MVC体系结构

一边是数据库,另一边是网络浏览器。为什么? 你应该在两者之间有一个状态吗

有状态和基于组件的Java Web框架使 自动保存页面状态,但这会带来很多其他问题 问题:如果用户打开第二个窗口会发生什么?如果 用户点击浏览器后退按钮


由于Mojarra 2.1.19和Mojarra 2.2.0-m10,可以通过将
瞬态属性设置为
来禁用每个视图的状态保存

<f:view transient="true">
    ...
    <h:form>
        ...
    </h:form>
    ...
</f:view>

...
...
...
另见:

我不熟悉ASP.NET,但JSF2使用部分状态保存来节省内存。您可能不需要禁用它。请参阅“是否可以在JSF2中禁用视图状态?”:是的,这是可能的:BalusC,您的链接似乎切中要害。然而。。。它确实说,深度黑客攻击是必需的,而JSF作者在2004年以来的JSF发展过程中,实际上没有抓住其中一个真正重要的方面。@XtraCoder我喜欢BalusC的链接,但这似乎是对JSF真正目的的冒犯。我曾经也是一名ASP.NET开发人员,我对无状态ASP.NET也有同样的感觉,但不同之处在于,在.NET技术中,没有其他众所周知的无状态web浏览解决方案不是过时的。Java没有这个问题,因为有许多框架更自然地处理无状态网页,例如JSP+Struts。@在我看来,一个好的框架是完善、简化和优化特定类型问题的解决方案的框架,并不是一个试图很好地涵盖所有可能需要的解决方案的人。就像餐馆一样,你会去一家有大量菜单和普通食物的餐馆,还是会去一家有小菜单的餐馆,厨师会非常专注于制作美味的食物?后者往往更成功。+1是一个好答案。JSF本质上是有状态的。要求无状态JSF就像需要一只宠物猫,但却试图驯化一只美洲狮。是的,这可能需要很多努力,但你最终会遇到一只非常不寻常且难以维护的美洲狮,它可能会在以后杀死你。理论上这是可能的,但为什么还要麻烦呢?Struts或Stripes更合适。