Sun Java Studio Enterprise 实践:创建一个 Web 应用程序
2005-02-24 23:10
656 查看
摘抄于:http://gceclub.sun.com.cn/staticcontent/html/2004-06-10/studio.html
几个月前SunMicrosystems宣布了SunJavaSystem,它是一个对软件进行打包、发布和定价的新方法。Sun初步指定了组成SunJavaSystem的一组软件。SunJavaEnterpriseSystem就是其中的一个,它将一组综合的基于标准的企业服务集成到一个单一的包中。这些服务包括Web和应用程序服务、目录和身份认证服务、门户服务和可用性服务。
作为SunJavaSystem宣言的一部分,Sun也宣布了SunJavaStudioEnterprise,它是JavaEnterpriseSystem的开发人员解决方案。JavaStudioEnterprise包括了创建和测试部署于JavaEnterpriseSystem上的应用程序的工具和服务。总之,JavaStudioEnterprise和JavaEnterpriseSystem为开发人员提供了一整套的解决方案,用于开发、测试以及部署企业应用程序和Web服务。
较早前的一篇文章介绍了JavaStudioEnterprise。它强调了JavaStudioEnterprise的一些关键的功能,以及为开发人员带来的好处。紧接着的一篇文章阐述了JavaStudioEnterprise如何很容易的创建和测试会话bean,会话bean是一个基于EnterpriseJavaBean(EJB)的组件,并代表J2EE服务器的一个客户。
在本文中,您将了解到如何利用SunStudio的WebApplicationFramework来轻松的创建Web应用程序,WebApplicationFramework已经集成到了JavaStudioEnterprise中。(为简单起见,本文以下用“WebApplicationFramework”,而不用“SunStudio的WebApplicationFramework”。)WebApplicationFramework不仅可以简化Web应用程序的创建过程,而且可确保Web应用程序符合最佳的设计理念,并具有高度的可扩展性。
目录
设计模式的最优方案(bestpractice)。WebApplicationFramework在它所生成的代码中实现了这些设计模式中的许多。为了做到这一点,WebApplicationFramework确保Web应用程序的结构完整性,并使它们具有高度的可扩展性,同时易于维护。
在对数据库中的记录进行访问之前,您需要启动PointBase网络服务器。
组件库含有许多不同的可视组件,其中的一个是BasicContainerView组件,也称为pagelet组件。一个pagelet提供一个page。要显示数据,pagelet必须被包含在另外一个称为BasicViewBean的可视组件中,也称为page组件。从该角度看,pagelet组件类似于Swing中的Panel组件。page组件类似于Swing中的Frame组件。和Panel组件一样,pagelet组件是形成复杂可视组件的基础。
pagelet组件可以包含其他可视组件,并且可重用于整个Web应用程序中的其他pagelet和page中。WebApplicationFramework应用程序中的一个单一的逻辑page通常与一个page组件和一个关联的JSP页相对应。当您创建pagelet组件(或者page组件)时,ApplicationFramework会给您机会来标识出一个关联的JSP页。本例中的下一步创建一个Page组件将提供更多有关page组件的信息。
SunJavaStudio的WebApplicationFramework开发指南)。当您需要更加灵活和更加复杂的显示逻辑时,通过API手工完成WebApplicationFramework任务将是十分有用的。然而,在大多数情况下,采用图形化的方法,即指定和单击是快速有效的方法。
添加CustomerListPagelet组件到CustomerListPage组件中:
SunJavaStudio的WebApplicationFramework开发指南。
不是创建和添加单独的按钮,现在让我们创建并添加一个组件,它含有四个经过预先配置的按钮以完成记录导航功能。请牢记WebApplicationFramework(和工具)是基于组件而建立起来的。先进的组件架构可使开发人员创建多种多样的组件。为了简化操作,已经为应用程序
要访问组件库,请下载文件
作为回应,JavaStudioEnterprise会识别出一个jar文件已经添加到您的Web应用程序的
现在组件库是可用的,将库中的导航控件添加到page中。
要编译、部署和运行该Web应用程序,请:
在Explorer窗口的WebApplicationFrameworkWebApps视图中右键单击PaginateDemo应用程序节点,然后选择CompileAll。
您将会看到一条说明Web应用程序编译成功的消息。
再次单击PaginateDemo应用程序节点,然后选择Deploy。
这时会有一个对话窗口显示应用程序部署的进度。如果在Web应用程序部署之后对其进行了修改,则需要重新编译和重新部署。
在Explorer窗口的WebApplicationFrameworkWebApps视图中右键单击CustomerListPage,然后选择ExecutePage。
作为回应,您将会看到一个显示来自示例数据中的一个含有三条客户记录的表的page。单击导航按钮来显示第一条、最后一条、下一条以及上一条记录。如果您对Web应用程序进行了修改并要进行重新的测试,请选择ExecutePage(Redeploy)。这将确保上一个版本的应用程序完全从应用服务器的内存中清除掉。
作为接下来的练习,您可以向同一个page中添加记录状态组件(RecordStatusComponent),并用配置导航组件相同的方式对它进行配置。这将添加一个记录状态消息。例如,当您显示三条记录中的第一条时,该消息显示为“Records1to3”。
SunJavaSystem
SunJavaEnterpriseSystem
SunJavaStudioEnterprise
IntroductiontoSunJavaStudioEnterprise
SunJavaStudioEnterpriseinAction:BuildingaSessionBean
BluePrints:Patterns
SunJavaStudio'sWebApplicationFrameworkDeveloper'sGuide
developers.sun.com和java.sun.com的一名职员。发表了许多有关关系数据库技术、编程语言以及Web服务的文章。
ReggieCarey是SunMicrosystems,Inc.的高级系统工程师,曾经从事过软件开发和管理。参与过两本有关软件技术书籍的写作,在计算机行业中已有将近20年的经历。Reggie偶尔会对应用服务器和集成开发环境发表武断的观点。
CraigConover是SunMicrosystems,Inc.的在职工程师,主要从事SunJavaSystemApplicationFramework(JATO)工程。他有11年的软件行业从业经历,从事过Web应用程序框架、工具以及应用程序的研究与开发工作。其职业生涯开始于1996年,从事过顾问、讲师等工作。
几个月前SunMicrosystems宣布了
作为SunJavaSystem宣言的一部分,Sun也宣布了
在本文中,您将了解到如何利用SunStudio的WebApplicationFramework来轻松的创建Web应用程序,WebApplicationFramework已经集成到了JavaStudioEnterprise中。(为简单起见,本文以下用“WebApplicationFramework”,而不用“SunStudio的WebApplicationFramework”。)WebApplicationFramework不仅可以简化Web应用程序的创建过程,而且可确保Web应用程序符合最佳的设计理念,并具有高度的可扩展性。
目录
- | |
- |
Web应用程序示例
在下面的示例中,您将了解到如何利用已集成到JavaStudioEnterprise当中的WebApplicationFramework来迅速创建一个Web应用程序。利用创建的Web应用程序,用户可以直观地浏览数据库中的记录。下面的步骤将描述WebApplicationFramework的诸多功能特性如可视和不可视组件,以及允许添加用户自定义组件的定制功能。除了具有WebApplicationFramework的功能外,JavaStudioEnterprise也有许多其他的用于提高开发人员效率的功能,以及一套综合性的开发资源和支持服务,目的是解决在应用程序的开发、编译以及测试过程中所遇到的问题。更多有关WebApplicationFramework的主题
对于Web应用程序而言,如果它应满足的需求简单的话,则它的创建也就相对简单。但随着需求的增长,则创建Web应用程序会迅速变得困难起来。最具难度的一个需求是:使Web应用程序具有可扩展性,以满足用户的不断增长(有时候数量会十分巨大)。要使Web应用程序具有可扩展性是很困难的,同时也将增加应用程序的复杂性,而且使它的维护更加困难。为了迎接这些挑战,JavaStudioEnterprise集成了一个功能强大的、灵活的以及易用的WebApplicationFramework。WebApplicationFramework为您提供了一个图形化的环境和一组可重用的组件,这样您就可以迅速创建Web应用程序了,甚至是那些具有高度复杂性和成熟性的Web应用程序。WebApplicationFramework的基础是一组J2EE的被称为启动JavaStudioEnterprise
在您所选择的开发平台上启动JavaStudioEnterprise。它可运行在Solaris操作系统、MicrosoftWindows2000以及MicrosoftWindowsXP上。本例运行于Solaris操作系统上。 当您启动了JavaStudioEnterprise之后,就打开了其集成开发环境(IDE)。从菜单栏中选择“View”菜单。然后选择WebApplicationFramework和WebApplicationFrameworkExplorer。这将打开WebApplicationFramework工作区。 工作区由一组窗口组成,利用它可以执行一组相关的任务。除了WebApplicationFramework工作区外,IDE中也有针对文件编辑相关任务的工作区,GUI编辑以及编译。您可以打开这些工作区中的任何一个,只要单击IDE中相应的选项卡即可。您也可以创建新的工作区,或者定制现有的工作区。每个工作区针对某个特定的任务可能会有不同的布局。我们也可以只用一个工作区,对它进行配置以显示所有的窗口和可用资源。然而,这个工作区将会变的非常拥挤。这也就是大家为什么乐于创建不同工作区的原因。 WebApplicationFramework工作区在默认状态下,将在左侧显示Explorer窗口,在下部显示WebApplicationFrameworkApps和Runtime视图选项卡。注意WebApplicationFrameworkApps视图中的工具栏。通过单击工具栏上的图标,就可以执行与开发Web应用程序相关的任务。 WebApplicationFramework工作区的中心区域显示的是Welcome窗口(当您打开一个文件进行编辑时,该区域会显示出Source编辑窗口),和其下部的Output窗口。一个标题为“ComponentPalette”的窗口显示在右侧。(注意:如果您定制了您的JavaStudioEnterprise环境,则工作区的布局可能会有所不同。) |
|
创建一个新的Web应用程序
创建一个名为PaginateDemo的Web应用程序:
单击WebApplicationFramework工作区工具栏上的第一个(也就就是位于最左边的那个)图标 。 打开了NewApplication向导。还有两个其他方法可以打开NewApplication向导。一个就是在IDE菜单中选择File菜单,然后选择New。就打开了New向导。在New向导中,展开WebApplicationFramework节点,选择Application,并单击Next按钮。另外一个就是在Explorer中右键单击WebApplicationFramework节点,然后选择NewWebApplicationFrameworkApp。(这些方法说明了IDE的灵活性)。 NewApplication向导一开始会提示您为新的应用程序定位一个位置。该位置由一个基本目录和一个Web上下文(Webcontext)组成。在本例中,我们采用默认的基本目录。输入 PaginateDemo作为Web上下文的名称。 单击Finish按钮。 向导中的其他窗格可帮助您对Web应用程序及其模块的许多属性进行定制。例如,您可以为Web应用程序指定一个包名,或者为一个将作为Web应用程序之前端控制器的servlet指定一个类名。然而,在本例中,Web应用程序及其模块的默认属性已经足够了。作为回应,您将看到一个通知窗口,说明Web应用程序已经加载,同时也说明它是一个WebApplicationFramework应用程序。该通知也说明了在工作区中查看已加载的Web应用程序的多种方法,并告诉您查找技术文档的位置。 单击OK按钮关闭通知窗口。 | |
注意在Explorer窗口的WebApplicationFrameworkWebApps视图中现在显示出了一个PaginateDemo节点。在 PaginateDemo节点的下部,您将会看到三个子节点: Settings&Configuration、 ApplicationClasses和 Documents。展开 ApplicationsClasses节点,然后展开 pageinatedemo文件夹,再展开 main文件夹。 main文件夹很特别,因为它是一个模块文件夹。模块文件夹是创建Web应用程序的所有ApplicationFramework组件(例如page、model和command)的地方。在本例中,您将使用一个模块文件夹和一个简单的Java包结构。然而,ApplicationFramework允许您创建许多模块文件夹和使用复杂的Java包结构。ApplicationFramework对您如何架构您的Web应用程序没有限制。这说明您可以利用ApplicationFramework创建高度复杂的Web应用程序。 |
创建一个JDBCSQL查询模型
您已经了解到Web应用程序可以显示一组客户记录并允许您进行可视浏览。在本例中,这些记录来自驻留在PointBase数据库服务器上的简单的SQL数据库。注意PointBase数据库服务器以及其他有用的开发工具如TomcatWeb服务器、AntXML-based脚本工具和JUnit测试工具都绑定到了JavaStudioEnterprise中。在对数据库中的记录进行访问之前,您需要启动PointBase网络服务器。
启动PointBase网络服务器: 在Tools菜单中选择PointBaseNetworkServer,然后选择StartServer。 就打开了PointBase控制台。如不需要,您可以将其最小化。 接下来,您需要创建一个既代表您要访问的数据,也代表检索该数据的操作的模型。注意WebApplicationFramework是建立在被称为设计模式的一组最优方案之上的。WebApplicationFramework在生成应用程序代码时实现这些模式。WebApplicationFramework实现的一个主要的模式是 模型——代表企业数据和负责数据访问和更新管理的商业规则。这说明模型既代表数据,也代表允许的数据访问和数据操作。 视图——呈现模型的内容。也就是说,视图向用户显示模型中的数据。 控制器——将与视图的交互翻译成由模型所执行的操作。这说明,根据用户的操作(例如,用户单击视图中的一个按钮),控制器会为模型选择出要执行的一组合适的动作。然后控制器选择一个基于操作结果的视图。 因为您要访问的数据存在于SQL数据库中,所以您需要创建一个JDBCSQL查询模型。该模型用于执行对SQL数据库的查询(通过JDBCAPI)。 创建一个JDBCSQL查询模型: 从Explorer窗口的WebApplicationFrameworkWebApps视图中选择 main模块文件夹。 单击WebApplicationFramework工作区工具栏上的AddModel图标 现在打开了NewModelWizard。NewModelWizard显示出了一个可用模型类型的列表。 另一种方法是,在Explorer窗口中右键单击 main模块文件夹,然后选择Add,再选择Model。 在Name域中输入 CustomerModel。 选择JDBCSQLQueryModel作为模型类型,并单击Next按钮。 显示出SelectDatasource窗格。 从SelectDatasource窗格的下拉列表中选择jdbc/jdbc-pointbase(惟一的可用选项)。 jdbc/jdbc-pointbase数据源是在创建Web应用程序中自动生成的。您可以根据需要创建指向其他数据库的数据源(如来自其他开发商的数据库)。在创建Web应用程序时,您可以选择避免创建默认的数据源。 单击Next按钮。 显示出SelectDatabaseTables窗格。 从可用的表的列表中选择CUSTOMER_TBL,并单击Add按钮。然后单击Next按钮。 显示出SelectTableColumns窗格。 单击AddAll按钮。 CUSTOMER_TBL中的所有列被选中。 单击Finish按钮。 |
注意一个称为 | CustomerModel的新模型组件已加入到您的 main模块文件夹中。在Explorer中展开 CustomerModel节点。您将看到列(column)节点。同时也为该模型创建了一个Java类。您可以通过双击 CustomerModel节点(或其 JavaSource子节点)查看该类中的源代码。 实际上,您只是关注了存在于WebApplicationFramework组件库中一个组件,本例中指的是JDBCSQL查询组件。组件库中包括了四种类型的组件:模型组件、可视组件、命令组件和不可视组件。顾名思义,模型组件提供模型(即,在一个MVC设计中提供“M”)。JDBCSQL查询组件所提供的模型使用一个SQL数据库中的一个或多个表作为一个数据源。可视组件创建Web应用程序的用户界面。命令组件用来封装操作,如请求的处理。非可视组件提供支持,如配置模型实例。在本例中,您将用到可视、命令和非可视组件。 |
创建一个Pagelet组件
在本例中,假设您希望显示客户记录,一次显示三条记录,并希望用表的格式显示。要显示数据,您就得创建一个视图。该视图允许您的应用程序在上一步骤中所创建的模型中显示数据。注意WebApplicationFramework组件库包含有可视组件。这些组件创建Web应用程序的用户界面,并提供模型的一个视图。组件库含有许多不同的可视组件,其中的一个是BasicContainerView组件,也称为pagelet组件。一个pagelet提供一个page。要显示数据,pagelet必须被包含在另外一个称为BasicViewBean的可视组件中,也称为page组件。从该角度看,pagelet组件类似于Swing中的Panel组件。page组件类似于Swing中的Frame组件。和Panel组件一样,pagelet组件是形成复杂可视组件的基础。
pagelet组件可以包含其他可视组件,并且可重用于整个Web应用程序中的其他pagelet和page中。WebApplicationFramework应用程序中的一个单一的逻辑page通常与一个page组件和一个关联的JSP页相对应。当您创建pagelet组件(或者page组件)时,ApplicationFramework会给您机会来标识出一个关联的JSP页。本例中的下一步
| 另外一个可视组件是BasicTiledView组件((或简单的说,tiledview)。一个tiledview是pagelet组件的一种,它可用一个重复区域(称为tile)的数字标识其孩子(即,pagelet和其他可视组件如显示域)。tile的例子是表的行或列,或者tabbed组件的选项卡。这个功能正是您为了一次显示三条客户记录所需要的。 创建一个tiledview: 从Explorer窗口的WebApplicationFrameworkWebApps视图中选择 main模块文件夹。 单击WebApplicationFramework工作区工具栏上的AddPagelet(ContainerView)图标 。 则打开Pagelet(ContainerView)Wizard。Pagelet(ContainerView)Wizard显示出可用Pagelet类型的列表。 另一种方法是,在Explorer窗口中右键单击 main模块文件夹,然后选择Add,再选择Pagelet(ContainerView)。 输入 CustomerListPagelet作为Pagelet的名称,并选择BasicTiledView作为Pagelet类型。然后单击Next按钮。 这时出现了AssociateJSP窗格。在本窗格中,您可以将该pagelet与一个JSP页关联起来。 单击标有"CreateaJSPforthiscomponent"的单选按钮。 这时,标有"UsedefaultJSPtemplate"的复选框被自动选中。 选中标有"UseformattingtobeautifyfieldsonJSP"的复选框。 选中这个复选框意味着一个基本样式表将会用一个简单的表布局来进行格式化显示。要这么做,请使用JavaStudioEnterprise中的默认的JSP/HTML语法着色编码(color-coded)编辑器对原始格式的JSP内容进行编辑。您也可以使用第三方的HTMLWYSIWYG编辑器。 单击Next按钮。 显示出ModelAssociations窗格。 扩展ModelAssociations窗格中的CurrentApplicationComponents节点,直到您看到CustomerModel组件为止。选择CustomerModel组件,单击Add按钮,然后单击Next按钮。 显示出BindDisplayFields窗格。 使用Control键来一次选择多个字段,选择以下的CustomerModel字段(所有字段都有前缀CUSTOMER_TBL_):CUSTOMER_NUM、EMAIL、NAME和PHONE。单击AddField(s)按钮。然后单击Finish按钮来创建TiledView组件。 | |||
注意一个名为CustomerListPagelet的新Pagelet组件已经添加到您的 main模块文件夹中了。在Explorer中展开 CustomerListPagelet节点可以看到 VisualComponents子节点。您将看到四个静态文本域(用一个 标出)。它们是您在对Pagelet(ContainerView)Wizard中的BindDisplayFields窗格中进行选取后所创建的。要进行这些选取,您需要将pagelet绑定到与之相关联的 CustomerModel的字段。 同时也为该pagelet创建了一个Java类。要查看类中的源代码,请双击 CustomerListPagelet节点(或其 JavaSource子节点)。 |
创建一个Page组件
正如上一步骤所述,一个pagelet提供了一个page。您可以使用许多pagelet组件(和简单的可视组件如displayfield和button)来组成一个更复杂的page组件。pagelet是可视组件,但如果没有一个包含它的page组件的帮助,它是不能显示出来的。注意Swing中类似的Panel组件。一个Panel组件只有在包含在一个Frame组件中才会显示出来。所以page组件位于可视组件层次结构的顶级。 创建一个page组件来作为TiledViewpagelet的父容器可视组件。要创建一个page组件,请: 从Explorer窗口的WebApplicationFrameworkWebApps视图中选择 main模块文件夹。 单击WebApplicationFramework工作区工具栏中的AddPage(ViewBean)图标 。 于是打开了Page(ViewBean)Wizard。Page(ViewBean)Wizard显示出了一个可用的Page类型列表。(列表中只有一个可用的Page类型:BasicViewBean)。 另一种方法是,在Explorer窗口中右键单击 main模块文件夹,然后选择Add,再选择Page(ViewBean)。 输入 CustomerListPage作为Page的名称,并选择BasicViewBean作为Page类型。然后单击Finish按钮。 page向导中的几个可选步骤与pagelet向导中的一样。如不单击Finish按钮,而是单击Next按钮,则显示出AssociateJSP窗格。在本例中,您不需要创建一个JSP页以便和该page相关联——向导会默认创建一个JSP页。而且,也不需要将该page与任何的模型相关联,所以不需要显示ModelAssociations窗格。 注意一个名为 CustomerListPage的新的Page组件已经添加到您的 main模块文件夹中。在Explorer中展开 CustomerListPage节点可以看到VisualComponents子节点。它没有子节点。在下一个步骤中,您将用ComponentPalette添加VisualComponents。 同时也为该page创建了一个Java类。要查看类中的源代码,请双击 CustomerListPage节点(或其 JavaSource子节点)。
|
添加Pagelet到Page中
WebApplicationFramework是组件友好型的。也就是说,您所创建的组件易于重用。只需要一个指定和单击,就可以将pagelet组件(CustomerListPagelet)添加到page组件(CustomerListPage)中。您也可以利用WebApplicationFrameworkAPI来手工完成这一任务(要了解有关使用WebApplicationFrameworkAPI的详细信息,请参阅添加CustomerListPagelet组件到CustomerListPage组件中:
| 确保ComponentPalette是可见的。如果它不可见,选择View菜单中的WebApplicationFramework,然后选择ComponentPalette。 在ComponentPalette中,默认的视图是VisualComponents层。 在Explorer窗口的WebApplicationFrameworkWebApps视图中选择CustomerListPage组件。 选择ComponentPalette中的ApplicationVisualComponent层。 ApplicationVisualComponent层位于ComponentPalette的底部,显示的图标是 。选择这一层之后,ComponentPalette会显示出所有当前应用程序的可视组件。这里只有可视组件CustomerListPagelet显示出来。一旦在您的应用程序中创建了另外的pagelet,它们就可以在ApplicationVisualComponent层中以备重用。 在ComponentPalette中选择CustomerListPagelet组件。 选择该组件会在CustomerListPage的VisualComponents节点下添加一个新的子节点。如果您在编辑器中显示CustomerListPage的Java源代码,您会发现有额外的代码生成。如果查看与之相关联的JSP页,您会发现一个新的标签被添加到了该JSP页。 在Explorer窗口中选择新的VisualComponents子节点customerListPagelet1。在属性页中,改变MaxDisplayTiles属性值,范围是-1(所有行)到3。 在这里,“tile”一词比“row”一词更普通。 |
添加导航控件
在现在为止,实际上您已经创建了一个可访问数据库中三条客户记录的Web应用程序。如果运行该应用程序,您会发现该页上显示出了三条记录,但却没有办法浏览其余的记录。而本例的目标之一就是允许用户浏览所有的客户记录。为了能够进行导航,您需要向该page上添加适当的按钮(如First、Next、Previous以及Last)并对其进行配置,以便使用内置的WebAction(WebAction可实现与模型相关联的特定动作)。WebApplicationFramework中的JDBCSQL查询模型和关联的WebAction可完成所有有关记录导航的基础工作。注意记录导航并不局限于基于SQL的模型,也可应用于可处理多记录的任何模型类型。记录导航是基于WebApplicationFrameworkAPI中可用的模型接口的。要了解有关这些接口的详细信息,请参阅不是创建和添加单独的按钮,现在让我们创建并添加一个组件,它含有四个经过预先配置的按钮以完成记录导航功能。请牢记WebApplicationFramework(和工具)是基于组件而建立起来的。先进的组件架构可使开发人员创建多种多样的组件。为了简化操作,已经为应用程序
PaginateDemo创建了一个含有多个组件的组件库。该库中的一个组件可提供必要的按钮,每个按钮都进行了适当的配置以完成一定的导航功能。
要访问组件库,请
paginate.jar。将该jar文件保存到您应用程序的
WEB-INF/lib目录(
Web-INF±libforWindows)。例如,如果您创建的
PaginateDemo应用程序位于目录
<home-dir>/jstudio_6ee_user,则将jar文件保存到
<home-dir>/jstudio_6ee_user/WEB-INF/lib中。
作为回应,JavaStudioEnterprise会识别出一个jar文件已经添加到您的Web应用程序的
lib目录(这不会花费太长的时间,也许只有数秒钟,取决于机器的性能)。此外,JavaStudioEnterprise也将该jar文件看做一个WebApplicationFramework的组件库。(包含在jar文件中的是一个描述文件,它将该jar文件指定为一个WebApplicationFramework组件库。)其中包含的组件将被显示在不同的JavaStudioEnterprise向导和ComponentPalette中。您将会在ComponentPalette中的VisualComponents层的底部看到
paginate.jar组件。
现在组件库是可用的,将库中的导航控件添加到page中。
在Explorer窗口的WebApplicationFrameworkWebApps视图中选择CustomerListPage节点或其VisualComponents节点。 单击ComponentPalette的VisualComponents层中的First-Prev-Next-Last组件,将其添加到page中。 在Explorer窗口中选择新的VisualComponents子节点paginateControls1。 在Property表中,将名为TargetContainerPath的属性的值设置为CustomerListPagelet1(CustomerListPagelet可视组件的名称)。 使用可视组件的实例名(customerListPagelet1)而不是正式的组件名(CustomerListPagelet)。该属性可使您定位一个可在其中进行导航操作的特定容器。如果您指定了一个空白值或者使用默认值("/"),则目标容器视图就是导航控件本身的父,也就是说,CustomerListPage。实际上,它是最终操作的模型。与模型相关联的目标容器用于检索记录。在这种情况下,目标容器视图是CustomerListPagelet的一个实例,它称为customerListPagelet1。目标容器视图的深度超过一级是常见的。 如果愿意的话,您可以更改按钮的标签,当前的标签是|<<(First组件)、>>|(Last组件)、->(Next组件)和<-(Previous组件)。 |
|
注意paginate.jar组件库只是一个原型。其目的不是为了表示一个成品,而是为了说明WebApplicationFramework组件架构的强大的功能和易于使用的特性。当您 |
测试Web应用程序
| 现在是测试该Web应用程序的时间了。要进行测试,您就需要编译、部署以及运行该Web应用程序。然而,在进行这些步骤之前,还需要进行以下工作: 确保SunJavaSystemApplicationServer处于运行状态。 在Explorer窗口的WebApplicationFrameworkRuntime视图中展开 InstalledServers节点。然后展开 SunJavaSystemApplicationServer7节点,再展开 localhost:4848节点。右键单击标签为 server1(localhost:8080)的应用服务器实例,然后选择Status。 于是显示出应用服务器实例的一个状态窗口。该状态会指示出应用服务器实例正在运行。如果状态停止,您可以单击状态窗口中的StartServer按钮启动应用服务器实例。 确保此应用服务器实例是默认服务器。 在Explorer窗口的WebApplicationFrameworkRuntime视图中展开 DefaultServers节点。标签为 server1(localhost:8080)的应用服务器实例应该列为默认服务器。如果没有,则展开 SunJavaSystemApplicationServer7节点,再展开 localhost:4848节点。右键单击标签为 server1(localhost:8080)的应用服务器实例,然后选择SetasDefault。 确保PointBase网络服务器处于运行状态。 如果PointBase网络服务器没有运行,则在Tools菜单中选择PointBaseNetworkServer,然后选择StartServer。 |
在Explorer窗口的WebApplicationFrameworkWebApps视图中右键单击PaginateDemo应用程序节点,然后选择CompileAll。
您将会看到一条说明Web应用程序编译成功的消息。
再次单击PaginateDemo应用程序节点,然后选择Deploy。
这时会有一个对话窗口显示应用程序部署的进度。如果在Web应用程序部署之后对其进行了修改,则需要重新编译和重新部署。
在Explorer窗口的WebApplicationFrameworkWebApps视图中右键单击CustomerListPage,然后选择ExecutePage。
作为回应,您将会看到一个显示来自示例数据中的一个含有三条客户记录的表的page。单击导航按钮来显示第一条、最后一条、下一条以及上一条记录。如果您对Web应用程序进行了修改并要进行重新的测试,请选择ExecutePage(Redeploy)。这将确保上一个版本的应用程序完全从应用服务器的内存中清除掉。
和paginate组件库一样,记录状态组件(RecordStatusComponent)是一个原型,且并不完全起作用。例如,记录状态消息应该显示“Records1to3of13”,而不是简单的“Records1to3”。 |
参考资料
关于作者
EdOrt是ReggieCarey是SunMicrosystems,Inc.的高级系统工程师,曾经从事过软件开发和管理。参与过两本有关软件技术书籍的写作,在计算机行业中已有将近20年的经历。Reggie偶尔会对应用服务器和集成开发环境发表武断的观点。
CraigConover是SunMicrosystems,Inc.的在职工程师,主要从事SunJavaSystemApplicationFramework(JATO)工程。他有11年的软件行业从业经历,从事过Web应用程序框架、工具以及应用程序的研究与开发工作。其职业生涯开始于1996年,从事过顾问、讲师等工作。
相关文章推荐
- Become.com的 Web Crawler: 一个超大规模的Java应用程序(想开发自己的搜索引擎增值服务的必读)
- JAVA学习中使用Eclipse创建一个动态的WEB项目
- 如何创建一个Progressive Web Apps应用程序
- 【初学Mybatis】No.1 使用Maven创建一个JavaWeb3.0项目
- 系统学习JavaWeb之三编写一个简单的Servlet应用程序
- 在 Azure Web 应用中创建 Java 应用程序
- 创建一个 Java 应用数据库的桌面应用程序
- 使用Eclipse EE(汉化版) 创建一个JavaWeb工程
- Eclipse创建一个JAVA WEB项目
- Java 理论与实践: 有状态 Web 应用程序都有漏洞吗?
- Java 理论与实践:有状态 Web 应用程序都有漏洞吗?
- Java EE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出
- 用STS和Maven的方式创建一个JavaWeb项目
- Maven 3 入门 -- 如何创建一个web应用程序
- Maven 3 入门 --- 如何创建一个web应用程序
- Create a Java Web Application using Embedded Tomcat (如何使用Embedded 创建一个基于Tomcat的Web 应用))
- 用IDEA创建一个Javaweb项目
- 用 intellij idea 创建一个Java web项目
- JAVA学习中使用Eclipse创建一个动态的WEB项目
- Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目