用JBuilder9 开发Struts实例
 一、JBuilder 对于 Struts 之支持

  JBuilder 提供图形使用者接口以简化组件文件 struts-config.xml 之编辑与设定,此外,JBuilder 于 Object Gallery对话框内的 Web 页次,提供四种精灵以简化 Struts 开发流程。

   Struts Converter Wizard:

  可指定 HTML 或一般 JSP 档案自动产生使用 Struts Tag Libraries 之 JSP 档案。

   ActionForm Wizard:

  可导入JSP 档案产生继承自 ActionForm 之类,或自定义属性 ( property ) 产生继承自ActionForm 之类,类产生后可选择是否自动完成 struts-config.xml 对应设定。

   Action Wizard:

  可产生继承自 Action 之类,设定搭配之 JSP 档案、有效范围 ( scope ) 并自动完成struts-config.xml 对应设定。

   JSP from ActionForm Wizard:

  可由指定之 ActionForm 自动产生使用 Struts Tag Libraries之 JSP 档案。

  除了上述精灵外,JBuilder 可协助开发人员自动设定web.xml 部署描述档,以便 JSP 使用Struts 自定义 Tag Libraries 。

  二、使用Jbuilder开发struts实例

   我们在这里举开发一个简易的 Web 应用程序的例子来帮助大家了解Struts Framework。此 Web 应用程序允许使用者输入两独立字符串,并将两字符串连接后显示于网页。由于处理逻辑过于简单,此实例中我们打算直接在扮演 Controller角色的 Action 中完成两字符串连接动作,因此未使用扮演 Model 角色之 JavaBean 或类来处理字符串连接。

  步骤一: 建立 Web 应用程序

   首先点击选择 JBuilder 集成开发环境主菜单 File | New Project… 建立一个名为StrutsDemo 之项目。接着由菜单File | New… 激活Object Gallery 对话框,并点击选择Web 页次中的 Web Application 精灵准备建立 Web 应用程序。

  Web Application 精灵会为此 Web 应用程序准备妥产生WAR 所需之部署描述档 web.xml,WAR 是 J2EE 规格中用以简化 Web 程序部署复杂度之标准档案格式。我们为此 Web 应用程序命名为 demo,往后将会在编译此项目档时产生名为 demo.war 档案以便于部署,在此 Web 应用程序中由于将会用到 Struts 之 Tag Libraries,因此在JSP/Servlet frameworks 中勾选Struts 1.0,同时JBuilder 会自动设定妥 web.xml。

  步骤二 : 建立自定义之 ActionForm 类

  Struts Framework 中并未限制 MVC 三部份开发顺序,由于此时我们并未准备妥可输入两字符串之 HTML 或JSP,因此先建立储存信息之 ActionForm 类,再产生扮演 Controller 角色之 Action 类,最后再由 ActionForm类产生 JSP 档案,大家可依状况调整顺序以适应实际案例。点击选择Object Gallery 对话框 Web 页次中 ActionFormWizard 可产生自定义之 ActionForm 类,ActionFormWizard 又可分为三步:第一步精灵自动侦测出之前已建妥之 Web 应用程序demo,我们将自定义 ActionForm 名称由预设 Untitled1ActionForm 修改为 myActionForm,接着按下 Next 按钮进入第二步。第二步依照需求将未来 JSP 页面上所需显示与输入的字段加入 Field definition 清单方块中,倘若负责网页美工专职人员已备妥输入用JSP 网页,亦可按下 Add from JSP… 按钮直接导入,JBuilder 将解析此 JSP 档案产生Field definition 表格。本例中由于未准备输入之 JSP 档案,因此必须自行加入所需之字段。我们为此 Web 应用程序预先准备三个字段,fieldA 与 fieldB 可储存输入之字符串,fieldResult 可置放两字符串连接后结果。设定完成后按下 Next 按钮进入第三步。

  步骤三对话框提示是否将 myActionForm 加入 struts-config.xml 组件档中?是否需要产生reset 方法? 可依照默认值按下 Finish 按钮。

  此时 ActionForm Wizard 已经自动产生了继承自ActionForm 之 myActionForm.java 档案,如果我们不打算实现资料核验之 validate 方法,我们完全无须撰写任何程序代码。

  步骤三 : 建立自定义之 Action 类

  点击选择Object Gallery 对话框 Web 页次中 Action Wizard可产生自定义之 Action 类,Action Wizard 分为两步:第一步精灵自动侦测出之前已建立之 Web 应用程序demo 与 struts-config.xml 组件档,我们将自定义 Action 名称由预设 Untitled1Action 修改为 myAction,接着按下Next 按钮进入第二步。

  在第二步对话框中,我们可以设定 myAction 的 perform 方法会传入哪一个 ActionForm,在FormBean Name 组合方块中,所有记录于 struts-config.xml 中的 ActionForm 都会列出以供选用,此外我们设定 myAction 之有效范围( Scope ) 为 Session,并指明/input.jsp 所有输入动作,将交由 myAction 处理。

  按下 Finish 按钮后即产生 myAction.java 档案。在myAction.java 中,JBuilder 已经自动产生了 perform 方法与尚未实现之例外程序代码,我们将 perform 内的程序代码做以下之修改,已完成字符串连接的动作:

myActionForm myActionForm=(myActionForm)ActionForm ;
String sA = myActionForm.getFieldA ( ) ;
String sB = myActionForm.getFieldB ( ) ;
myActionForm.setFieldResult (sA+sB) ;
return ( actionMapping.findForward ( "input" ) ) ;

   由于 perform 方法会传入参数 ActionFrom 以便获知 Web浏览器内使用者输入之字符串,在此JBuilder 已将ActionForm 转型 ( Type Cast ) 为 myActionForm 之程序代码产生完成,开发人员仅需以 getFieldA 与 getFieldB 方法即可得知使用者输入之字符串,并将连接后结果以setFieldResult 方法回存fieldResult 属性。return 将决定负责显示之 JSP 网页,利用perform 方法传入参数actionMapping 之 findForward 方法,可用以指定显示之JSP 网页。之前精灵对话框中已预设 /input.jsp 为负责输入之 JSP 网页,Struts 中允许输入与显示同为一个 JSP 网页,因此我们需在 struts-config.xml 中定妥名为 input 之Forward 标记,以便 findForward 方法能够利用此标记得知真正 JSP 网页名称 /input.jsp。

  步骤四 : 设定 Forward 标记

   点击选择 JBuilder 左上方之项目窗格 ( Project Pane ) 内之struts-config.xml,此时集成开发环境便可以图形使用者接口方式编辑 struts-config.xml 内容,左下方结构窗格( Structure Pane ) 会依照 struts-config.xml 结构,分为 DataSources 、Form Beans、Global Forwards 与 Action Mappings四类标记项目。

  当点击选择 Global Forwards 项目后 JBuilder 右方内容窗格( Content Pane ) 将出现如图所示之编辑画面,开发人员可按下 Add 按钮加入名为 input 之标记,并指明此标记对应路径为 /input.jsp。

  对于已经熟悉 Struts Framework 的开发人员, 若欲直接修改 struts-config.xml 内容,可以点击选择内容窗格中的Source 页次,此时内容窗格如图所示将以文字编辑器显示 XML 内容,我们可自由选择习惯之方式维护 struts-config.xml 内容。

  三、处理中文编码问题(以繁体中文为例)
  对于处 理 Struts Framework 中文编码问题有多种方式,在此我们继承 ActionServlet 类并覆盖 process 方法,于子类process 方法中设定请求编码。由此展现ActionServlet 扮演前端 Controller 之特质。

   首先,点击选择 JBuilder 主菜单 File | New Classes 准备产生一新的类。并继承自org.apache.struts.action.ActionServlet并将预设的类名称由Untitled1 改为 myActionServlet。按下 OK 按钮后即产生程序代码。点击选择 JBuilder 主菜单Wizards | Override Methods… 激活覆盖方法精灵,覆盖方法精灵会自动列出父类 ActionServlet 所有可供覆盖之方法。我们可于 Available methods 清单方块中选取process (HttpServletRequest request, HttpServletResponse response) 方法,完成后按下 OK 按钮。

  此时我们可修改覆盖后 process 方法程序代码如下:

request.setCharacterEncoding ("MS950") ;
super.process (request, response) ;

  备注:此处以繁体中文为例,在中国国内一般我们用的是简体中文,因此可以将上述代码在简体中文环境下编写为:

request.setCharacterEncoding ("GB2312") ;
super.process (request, response) ;

  首行程序代码将 process 传入之参数 request 设定为 MS950编码,其余行为同父类。接下来我们将要修改 web.xml部署描述档,以指定 Servlet 之进入点,首先点击选择左上方项目窗格中的 web.xml。

  此时,左下方结构窗格将出现 web.xml 内 XML 标记之树状结构。我们可以点击选择 Servlets 内的 Action 项目。

  此时,便可运用右方内容窗格之图形使用者接口编辑器修改 Servlet 进入点,目前预设之进入点是 Struts Framework 的 ActionServlet。

   我们可以按下 Servlet class 项目右方 [ … ] 按钮选取新的进入点替换预设之ActionServlet,也就是之我们撰写之strutsdemo.myActionServlet。倘若我们非常熟悉 web.xml 结构,同样地可以直接点击选择内容窗格内的 Sources 页次,直接以文字编辑器修改<servlet-class> 标记的内容。

  修改完毕后,内容窗格内应如下图:

  完成后重新编译此项目并执行之。再次测试后我们将发现繁体中文已经可以正确处理。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131371/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-131371/

[转载]用JBuilder9 开发Struts实例相关推荐

  1. 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解

    微信小程序 欢迎界面 市面上大多数的app都会有一个欢迎界面,下面将演示如何通过微信小程序实现一个欢迎界面. 下面将会按照以下的顺序介绍: 布局的实现 逻辑的实现 样式的实现 1.布局的实现 整个布局 ...

  2. MyEclipse开发Struts1实例

    因为工作原因,最近开始做java web方面的工作.MyEclipse是现在开发java常用工作.structs是现今流行的servlet框架.下边我就用MyEclipse写一个Struts实例. 开 ...

  3. php mysql 网站实例教程,PHP+MYSQL网站开发全程实例

    . 从观念的引述.程序代码解析到范例的延伸应用,给您最完整的学习流程. 2. 实务网站范例,所有技术整合运用,实作技巧一览无遗. 3.在PHP的程序设计中,以高阶的程序设计,配上灵活的图解,增加您程序 ...

  4. 【转载】iPhone开发论坛madhome--水平感应:flash CS5开发iPhone应用

    本文转载自iPhone开发论坛madhome   在iPhone应用中,又很多游戏是使用水平感应(重力感应)来控制的,比较有意思的如Doodle Jump,Space Ball等,还有些赛车游戏直接把 ...

  5. myeclipse java可视化_使用MyEclipse可视化开发Hibernate实例

    使用MyEclipse可视化开发Hibernate实例 2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中. 这个实例主要演示如何使用My ...

  6. VTK:开发Warnings实例

    VTK:开发Warnings实例 VTK:开发Warnings实例 代码 Warnings.cxx CMakeLists.txt VTK:开发Warnings实例 代码 Warnings.cxx #i ...

  7. php 实例 规范,PHP开发规范实例详解

    本文主要和大家分享PHP开发规范实例详解,希望能帮助到大家. 源文件 代码使用<?php开头 ,忽略闭合标签?> 文件格式必须是无BOM UTF-8格式 一个文件只声明一种类型,如clas ...

  8. linux apple开发环境,Linux上构筑iPhone OS3.1.2开发环境 实例操作

    Linux上构筑iPhoneOS3.1.2开发环境 实例操作是本文要介绍的内容,开发iPhone应用程序标准的环境配置是基于intel Mac的.虽说现在Mac很便宜,但是仍然大部分人仍然在用wind ...

  9. 基于php的微信公众平台开发入门实例

    作者:zbtree 这篇文章主要介绍了基于php的微信公众平台开发入门,实例分析了微信公众平台从注册.配置方法及接口代码的实现技巧,深入浅出.希望可以帮助大家快速入门. CSDN学院开设了系列直播&l ...

最新文章

  1. 低版本jdbc连接高版本oracle,转:oracle11g的JDBC连接 URL和之前的版本有一定的区别...
  2. 最长递增子序列问题的求解
  3. NIO Buffer
  4. OpenFOAM并行计算方法
  5. IOS开发基础之画板案例软件的开发
  6. SpringCloud Netflix Eureka
  7. 充电桩系统php源码,源码 充电桩程序设计 - 下载 - 搜珍网
  8. 切记!职场邮件需注意的细节
  9. Java 多线程 —— 死锁与锁的错误用法
  10. 仅用10个月!中国高中生拿下Kaggle Master,怎么做到的?
  11. php类似微信聊天框,仿微信聊天功能
  12. php 自动分配数据到个人,数据表格自动分配列宽的一种实现方法
  13. c语言中用指针倒序输出,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...
  14. HDU 5900(区间DP)
  15. php 3cschool,W3Cschool中的PHP测试题题目以及答案
  16. R语言查找指定值的位置(行列)1
  17. 树莓派查看cpu温度的命令
  18. 解决Android Studio无法下载
  19. 栈帧详解ebp、esp
  20. 前端工作怎么包装简历,需要掌握哪些知识项目

热门文章

  1. 实分析(实变函数论)
  2. Android彩信发送介绍
  3. 如何使用 Qt 开发音视频通话应用
  4. Abaqus CAE在多物理模拟中的5个使用案例
  5. 列表函数的最小二乘拟合(matlab)
  6. 每年过年前几天有搞头的,国债逆回购节前最后几天可能会狂飙
  7. 怎么把产品内容做得更吸引用户?
  8. 怎么把ppt转为html代码,ppt转html格式(示例代码)
  9. 高等数学----多元函数微分学的难点重点详细思考
  10. 吃透这“ 16个 ”核心技术栈,月薪40K还不是随便叫