站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题JDeveloper构建Struts应用程序

JDeveloper构建Struts应用程序

摘要: 内置的Struts支持提高了Oracle Java集成开发环境的生产力......
<iframe align=right marginWidth=0 marginHeight=0 src="http://www.chinabyte.com/tag/cont_flash_software.html" frameBorder=0 width=360 scrolling=no height=300></iframe>

  内置的Struts支持提高了Oracle Java集成开发环境的生产力。

  Jakarta Struts是一个由Apache software foundation支持的开放源码项目。Struts提供了一个使用标准J2EE(Java 2 Platform,Enterprise Edition)组件(如JavaServer Pagers(JSP)、servlet和JavaBean)构建Model 2--模型-视图-控制器(Model-View-Controller,MVC)应用设计范例的一个变体--应用程序的框架。

  Struts是为解决很多企业应用程序开发项目中所遇到的问题而编写的。Struts为企业Web应用程序开发过程中所遇到的常见问题(诸如页流程图(page-flow)、国际化、可维护性和部署灵活性等提供解决方案。

  Oracle9i Jdeveloper中的Struts应用程序开发

  Oracle9i Jdeveloper 9.0.3版通过以下特性为基于Struts的J2EE应用程序开发提供全面的支持:

  Struts运行时库。Oracle9i Jdeveloper为Struts 1.1提供特别支持并捆绑了运行时库和一些Struts Web应用程序示例。当你从jakarta.apache.org下载Struts时,将会同时下载运行时库和应用程序示例。

  Struts代码生成向导。Oracle9i Jdeveloper通过常用的Struts ActionForm和Action类的代码生成向导提供增强的Struts开发。Struts初始应用向导(Struts Starter Application Wizard)使你的项目可以通过提供必要的Java库以及应用文件(如struts-config.xml和ApplicationResources.properties文件)而构建Struts应用程序。

  Struts配置编辑器(Struts Configuration Editor)。每个Struts应用程序都使用一个主配置文件struts-config.xml,这是一个跟踪整个应用程序配置信息的XML文件。Struts配置编辑器提供了一个简化配置文件编辑的易于使用的用户界面。

  Struts和BC4J

  除了为普通的Struts应用程序提供开发支持外,Oracle9i Jdeveloper还提供了一些附加特性,帮助开发那些使用Business Components for Java(BC4J)的Struts应用程序。这些Struts的BC4J特性包括:

  Struts BC4J JSP初始应用向导。该向导生成一个简单的初始应用程序。

  完整的Struts BC4J JSP应用向导。该向导生成一个完整的基于Struts的BC4J JSP应用程序。
构建一个简单的Struts应用程序

  真正了解Oracle9i Jdeveloper的Struts功能的最佳方法是构建一个简单的Struts应用程序。本文中的示例应用程序是一个简单的登录表单(form)应用程序。

  你可以在otn.oracle.com/ software/products/jdev处下载Oracle9 JDeveloper的评估版。你还可以在otn.oracle.com/sample_code/products/jdev上下载本文中所描述的完整的应用程序项目。该应用程序项目需要的所有文件都包含在SimpleStrusApp.zip文件中。

  概述

  建立该示例应用程序的第一步是创建表示MVC应用程序范例视图的JSP文件。这些文件包括:

  Login页面(login.jsp)
  Login Success页面 (success.jsp)
  Login Failure页面 (failure.jsp)

  要开始创建这些页面,你应该先调用JSP页面向导来建立login.jsp,然后再对该页面进行定制。login.jsp实际上将使用来自Struts标记库的JSP标记生成登录表单及其元素。success.jsp与failure.jsp文件中仅包含提示登录成功与否的信息。你还需要定义一个Struts ActionForm bean(LoginForm)来表示form(表单)元素和一个Struts Action类(LoginAction)来处理登录请求。

  创建login页面。要开始创建Struts示例程序,首先要启动Oracle9i Jdeveloper。要打开整个下载的应用程序,在Oracle9i JDeveloper中点击File->Open命令,然后选择SimpleStrutsApp.jws文件。在Oracle9i JDeveloper System Navigator中,展开SimpleStrutsApp.jws和WorkingStruts.jpr节点。本文提及的所有开发文件均位于WorkingStruts.jpr节点下。

  要生成一个名为login.jsp的空JSP login页面,请选择File->New命令。在New对话框中,Categories下选择Web tier->JavaServer Pages (JSP)。在Items下选择JSP Page,然后点击OK。在New JSP Document对话框中,接受缺省的目录位置,输入文件名login.jsp,点击Ok。

  下一步,添加一个基于Structs的HTML表单来包含你的login(登录)字段。在Component Palette中选择Struts HTML,并将form标记添加到该页面中。在JaveServer Page Tag Editor中,设置Action属性为/login。/login是你将在其下创建的Struts映射。

  现在,你已经有了一个空的Struts表单。添加login字段,使用Component Palette来创建Struts text标记。将第一个text(文本)字段的属性值设置为"userid"。重复该步骤创建password(密码)字段,但是将其属性设置为"password"。在你运行该HTML表单时,Struts text标记将提供userid和password字段。这些字段还对应于表示HTML表单中所有字段的Struts ActionForm类。

  在每个text字段前面,你还需要添加"Userid:"和"Password:"提示。你可以将这些提示直接添加到JSP页面中。

  注意:如果你希望能动态产生提示,比如,根据所在区域或语言首选项,这些提示可以通过Struts message标记从一个与特定语言的资源文件中产生。

  你完成的login.jsp看起来应该像清单1所示的那样。

  创建登录form bean

  一旦完成了Login.jsp,你就可以开始创建Struts ActionForm bean,用于对HTML form字段提供Jave表示。form bean还提供第一层的校验,例如,所有需要输入的字段是否包含数据或字段是否有数据位于错误的表中,如错误的电子邮件地址。

  要在Oracle9i JDeveloper中建立Struts ActionForm Bean,请启动Oracle9i JDeveloper的Action向导,选择File->New。在打开的New对话框中(Categories下),选择Web tier->Struts。在Items下选择ActionForm,然后点击OK。在New Struts Form Bean对话框中,输入类名(Name)为LoginForm 、form bean(FormBean Name)为LoginForm,然后点击OK。

  创建ActionForm Bean(LoginForm.java)后,使用Oracle9i JDeveloper的Class Editor将userid和password字段添加到该bean中。Class Editor简化了为LoginFrom bean添加字段以及相应的getter和setter方法。

  为了提供一些初始的form字段校验,你可以定制缺省form bean的validatre()方法。对于这个应用程序,你只需要检查字段是否为空即可。你可以通过使用清单2中的代码替换LoginForm.java中缺省bean的validate()方法代码来进行这一检查。

  注意清单2中的error.userid.required与error.password.required参数,它们实际指的是你的ApplicationResources.properties文件。你可以在这个文件中定义相应的错误信息。

图1:Struts配置编辑器

  构建Login Action类

  Struts Action类使你能够对来自HTML表单的请求进行实际处理。要创建你的登录请求,可以使用Oracle9i JDeveloper的Struts Action向导建立一个Structs Action。选择File->New,在New对话框(Categories之下)中选择Web tier->Struts。在Items下选择Action,点击OK。在New Struts Form Bean对话框中,输入类名(Name)为LoginAction,输入路径(Path)为/login,该路径对应你Structs form标记中指定的动作。

  要定制LoginAction类,可以编辑LoginAction.java文件并加入必要的代码,以便根据表单提交的HTML字段判断登录成功与否。这可以通过编辑Action类的execute()方法来完成。使用清单3中的代码替换execute()方法的缺省内容。

  注意,在这个示例程序中,LoginAction指的是实际完成用户ID与密码校验的LoginCheck。在一个现实的应用程序中,这个类可能要根据数据库或其他安全机制检查登录。

  为了简单,我们使用下面十分简单的登录检验代码(位于LoginCheck.java中):

<table cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0> <tr> <td>  package mypackage1;
  public class LoginCheck
  {
  boolean checkUseridPassword(String id, String pwd)
  {
  if ( id.equals("scott") && pwd.equals("tiger") )
  return true;
  else
  return false;
  }
  }</td></tr></table>

  组装在一起

  既然你已经完成了这个简单应用程序的所有工作组件,你需要将它们组装在一起。易于组装正是Stucts的主要优点之一;Struts提供了一个单一配置文件struts-config.xml,在该文件中可以将J2EE Web应用程序的所有元素连接在一起。

  第一步,打开Struts配置编辑器,如图1所示,编辑struts-config.xml文件,使用Struts Action映射将LoginAction连接到LoginForm bean。这就使你能够将LoginAction与LoginForm进行绑定,从而使该应用程序能够在LoginForm的validate()方法中处理HTML form字段的值,然后将请求传递给Action类,在该类中可以确定登录是否成功。

  下一步,为一个成功或失败的登录建立全局映射。这也可以在Struts配置编辑器中完成。全局映射使你能够将一个JSP页面(如success.jsp)关联到一个应用程序事件(如成功的登录),或者将failure.jsp关联到一个不成功的登录事件。

  现在,应用程序已经正确地组装在一起了,你可以在Oracle9i JDeveloper中通过本地运行Login JSP页面进行测试。内嵌的OC4J服务器将启动,然后你可以看到Login页面出现。这时你可以通过先提交一个空表单来测试基本的表单校验。然后输入非userid=scott、password=tiger的密码来查看登录失败的情况。

  结论

  本文所描述的应用程序十分简单,但可以很容易地扩展到其他应用中。它说明了Struct的关键开发技术,以及如何Oracle9i JDeveloper中高效地使用它们。

  




↑返回目录
前一篇: WebLogic的初步研究
后一篇: JAVA代码编写的30条建议