1

在尝试使用 Ext JS 4.1、JSP 和 Spring MVC 3.1 实现我的应用程序时,我遇到了一个基本问题。我的问题在于 Ext JS 4.1,因为我非常擅长 Spring。

我有一个 app.js 类型文件,根据其他帖子似乎是惯例。我有多个 JSP,它们都有不同的小部件布局。说我应该每 1 个 JSP 有 1 个 Ext JS 控制器是否正确?如果是这样,我该怎么做?如果没有,我错过了什么。

在我的 JSP 文件中,我引用了当前具有单个控制器的 app.js 文件。我不明白我将如何让第二个 JSP 引用相同的 app.js 文件并要求/告诉它使用不同的 Ext JS 控制器。任何人都可以帮助我理解这一点吗?

是的,我已经阅读了 Ext JS 的文档,但除了使用 1 个控制器之外,我什么也没看到。

4

1 回答 1

3

快速回答:

您可能希望在一页中包含所有脚本标签。然后使用带有卡片布局的面板作为您的主容器,其中包含您的管理和用户面板等子项。然后,您可以切换卡片布局以在任何给定时间将要显示的项目设置为活动卡片。这些子组件中的每一个都可以具有所需的布局和其他组件的任意组合。

当您进入暂存或生产环境时,可以将所有文件合并到一个 app.js 中。对于开发环境来说,拥有一个用于开发的 app.js 文件通常并不理想,因为它会减慢您的速度并使调试变得更加困难。将文件组合到单个 app.js 中非常适合生产环境,以提高浏览器的性能。

更长的答案:

您可以拥有多个 jsp 视图页面,这正是您想要的,但您可能想要移动到“Sencha 方式”并为主应用程序使用单个视图。

Ext JS 的一个常见用途是单页应用程序,这意味着您对主应用程序有一个单一的 jsp 视图。通常,您可能使用的唯一其他页面是另一个 jsp 上的登录表单。

从通过 jsp 视图从服务器请求每个页面视图切换到使用单页应用程序时,通常需要一些时间来适应,但是一旦完成转换,在单页应用程序中工作对于用户和开发来说都是一种很好的体验, 也。

在单页应用程序中,主 jsp 页面将包含所有 Ext JS 视图的所有脚本以及通过 script 标签包含在其中的所有 Ext JS 控制器。在生产环境中,您将希望使用 JAWR 或 jsbuilder3,但在早期开发阶段,您可能只包含每个脚本标签以最大程度地减少工作量。

我现在正在使用的一个非常大的应用程序是一个带有 login.jsp 和 home.jsp 的 Spring MVC 应用程序。Login.jsp 使用 Spring Security,其中包含零 Ext JS。成功登录会将用户带到 home.jsp,其中包含所有脚本。

这是您可能想要尝试设置的配置。这与我经常设置的类似。其中一些信息可能已经很熟悉,但以防万一。

Ext JS 视图。您可以使用带有边框布局的视口。视口组件使用完整的浏览器区域。边框布局为您提供五个区域来放置组件,分别是北、东、南、西和中心。您只需要使用一个中心区域,然后使用任何其他想要的区域。您可以像往常一样在东部和北部地区包括导航面板和按钮。您可以在中心区域包含一个带有卡片布局的面板。卡片布局应该将您的管理员视图、用户视图等作为该面板的子项。由于使用了卡片布局,因此在任何时候都只能看到其中一项。

然后可以使用布局和组件的任意组合来配置这些视图中的每一个。

Ext JS 控制器 配置好视图后,包括一个绑定到导航项(如按钮)的导航控制器。单击导航按钮时,必须切换卡片布局 activeItem,以便将管理员、用户或其他面板项设置为活动状态。对用户来说,“页面”似乎已经改变。

从这里您可以为该主卡布局中的每个主视图创建一个控制器 - 用户控制器、管理控制器等。

如果你还没有读过这些,它们值得一读:

http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture http://docs.sencha.com/ext-js/4-1/#!/guide/mvc_pt1

于 2012-08-03T01:34:36.413 回答