【发布时间】:2012-02-22 01:54:06
【问题描述】:
我从 MS 和 ASP.NET 进入 Java 世界,并在 Java 中寻找类似于 ASP.NET 的基于组件的 HTML 框架。在查看了互联网上的大量链接后,看起来 JSF2(带有 facelets)是最佳匹配(顺便说一句,这是真的吗?还是有其他更好的选择?)。
我现在在评估过程中遇到的问题是正确使用 JSF 的视图状态。我的最终使用场景是一个集群的 WEB 服务器,我不会有任何会话/服务器存储的对象,我不会将网络带宽用于虚拟视图状态(请参阅另一个人的相关问题 JSF Tuning )。
我学习了一些 JSF2 教程,并在设置 javax.faces.STATE_SAVING_METHOD = 客户端后将 ViewState 生成为 440 个字符的 HTML(我的天,页面仅包含 1 个虚拟文本输入和 1 个提交按钮)。在“提交时提交”中,我只需要来自文本输入(10 个字符)的文本,而不是虚拟视图状态(440 个字符)。
所以问题是 - 是否可以在 JSF2 中禁用视图状态?
相关链接:
ASP.NET 中的用例 - “禁用页面的视图状态”:
http://www.ironspeed.com/articles/Disable%20View%20State%20for%20a%20Page/Article.aspx在 stackoverflow 上没有帮助的答案:
How to reduce javax.faces.ViewState in JSF
更新:相关链接(来自下面的 cmets):
【问题讨论】:
-
我不熟悉 ASP.NET,但是 JSF2 使用部分状态保存,以节省内存。您可能不需要禁用它。见stackoverflow.com/a/4391494/456062
-
“是否可以在 JSF2 中禁用视图状态?”:可以,可以:industrieit.com/blog/2011/11/…
-
BalusC,您的链接似乎切中要害。然而......它确实说需要深度黑客攻击,而 JSF 作者实际上未能抓住自 2004 年以来 JSF 演变的多年中真正重要的方面之一。
-
@XtraCoder 我喜欢 BalusC 的链接,但这似乎是对 JSF 真正目的的冒犯。我曾经也是一名 ASP.NET 开发人员,我对无状态 ASP.NET 也有同样的感觉,但不同之处在于,在 .NET 技术中没有其他众所周知的无状态网页浏览解决方案尚未过时。 Java 没有这个问题,因为有许多框架可以更自然地处理无状态网页,例如 JSP+Struts。
-
@XtraCoder 在我看来,一个好的框架是完善、简化和简化特定类型问题的解决方案,而不是试图糟糕地涵盖所有可能需要的解决方案。就像在餐馆一样,你会去一个有大量菜单但食物平庸的地方,还是去一个有小菜单但厨师非常注重制作美味的地方?后者往往更成功。