一、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 方法,我们完全无须撰写任何程序代码。