传统的web应用程序会在表现层包含管理用户交互的代码,例如:一个页面可以决定用户将要跳转的下一个页面。开发者经常把所有交互代码写在用户界面代码中。然而,开发者将页面导航代码写入页面代码后,代码会很复杂,而且难以重用、维护和扩展。对于整个应用程序来说,它的业务逻辑、控制逻辑和运行状态等都很难被重用。在很多情况下,应用程序的运行状态需要保持。但是如果状态保存在某个页面中,那么代码必须从这个页面中找回状态。这样编写出来的代码不够优雅,很难得到预想的效果,而且这些不雅的代码又影响了web页面的扩展和重用