使用JBuilder开发Struts应用的步骤

使用JBuilder开发Struts应用的步骤

一、JBuilder 对于 Struts 之支持

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



(1)Struts Converter Wizard:

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

(2)ActionForm Wizard:

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

(3)Action Wizard:

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

(4)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 角色之 使用JBuilder开发Struts应用的步骤
JavaBean 或类来处理字符串连接。使用JBuilder开发Struts应用的步骤

步骤一: 添加Struts 1.1 类库

(1)将Struts 1.1 下载到 JBuilder的extras目录中。如果没有,去baidu搜索一下,没有1.1没法开发。

(2)从菜单的Tool -> Configure Librarys 开始添加库

使用JBuilder开发Struts应用的步骤

(3)修改库的名字为Struts1.1, Location为 Jbuilder

使用JBuilder开发Struts应用的步骤

(4)讲Struts的lib目录下面的包全部添加到库目录中

使用JBuilder开发Struts应用的步骤

(5)按确定后的样子

使用JBuilder开发Struts应用的步骤

(6)在选择Framework,选择其为Struts,按OK后就配置好Struts 1.1 的库了。

使用JBuilder开发Struts应用的步骤


步骤二: 建立 Web 应用程序

首先点击选择 JBuilder 集成开发环境主菜单 File | New Project… 建立一个名为myTest 之项目。

使用JBuilder开发Struts应用的步骤

接着由菜单File | New… 激活Object Gallery 对话框,并点击选择Web 页次中的 Web Application 精灵准备建立 Web 应用程序。使用JBuilder开发Struts应用的步骤

使用JBuilder开发Struts应用的步骤

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


步骤三 : 建立自定义之用户界面

自定义的用户界面可以用两种方式开发:(1)先创建ActionForm,再从ActionForm生成Jsp。(2)先创建Jsp,再从Jsp生成ActionForm。

由于未准备妥可输入两字符串之 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 应用程序预先准备三个字段,str1 与 str2 可储存输入之字符串,result 可置放两字符串连接后结果。设定完成后按下 Next 按钮进入第三步后根据默认设置按Finish。

使用JBuilder开发Struts应用的步骤
使用JBuilder开发Struts应用的步骤
使用JBuilder开发Struts应用的步骤




接下来我们将利用现有 MyActionForm.java 产生/MyJsp1.jsp,点击选择Object Gallery 对话框 Web 页次中JSP from ActionForm Wizard,将出现以三步产生 JSP 之精灵。

使用JBuilder开发Struts应用的步骤


修改jsp名字,同时选择ActionForm Class,选择好后,按OK就产生了一个JSP文件。
使用JBuilder开发Struts应用的步骤

使用JBuilder开发Struts应用的步骤

使用JBuilder开发Struts应用的步骤


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

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



在第二步对话框中,我们可以设定 MyAction 的 perform 方法会传入哪一个 ActionForm,在FormBean Name 组合方块中,所有记录于 struts-config.xml 中的 ActionForm 都会列出以供选用,此外我们设定 myAction 之有效范围( Scope ) 为 request。
使用JBuilder开发Struts应用的步骤


按下 Finish 按钮后即产生 myAction.java 档案。在myAction.java 中,JBuilder 已经自动产生了 perform 方法与尚未实现之例外程序代码。但是我们用的是Struts 1.1,所以需要删除这个方法,重新生成一个execute的方法。打开菜单 Wizards -> Override Methods ,从打开的对话框里面,选出execute(ActionMapping……)这个方法,按OK按钮。

使用JBuilder开发Struts应用的步骤使用JBuilder开发Struts应用的步骤
 

 

  按如下修改execute代码:  
  public class MyAction extends Action {
public ActionForward execute(ActionMapping parm1, ActionForm parm2,
HttpServletRequest parm3, HttpServletResponse parm4) throws java.lang.Exception {
MyActionForm myActionForm=(MyActionForm)parm2 ;
String sA = myActionForm.getStr1 ( ) ;
String sB = myActionForm.getStr2 ( ) ;
myActionForm.setResult (sA+sB) ;
System.out.println("HelloAction.do executing..........");
return ( parm1.findForward ( "hello" ) ) ;
}
}
 



步骤五 : 修改struts-config.xml文件和MyJsp1.jsp

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

使用JBuilder开发Struts应用的步骤使用JBuilder开发Struts应用的步骤



选择Global Forwards,添加一个选项,Name: hello Path:/Myjsp1.jsp

单击右下角的Source,修改xml的源代码。修改第2行中的Struts版本号为1.1。具体的xml文件如下:

 

  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="myActionForm" type="mytest.MyActionForm" />
</form-beans>
<global-forwards>
<forward name="hello" path="/MyJsp1.jsp" />
</global-forwards>
<action-mappings>
<action name="myActionForm" type="mytest.MyAction" input="/MyJsp1.jsp" scope="request" path="/MyAction1" />
</action-mappings>
</struts-config>
 
   

该XML将为Action类做一个映射,如上用蓝色标明的部分,以后通过 "/MyAction1" 就可以访问 mytest.MyAction这个类。

在MyJsp1.jsp文件的form的action中,使用这个标签。将Form的处理页设置为该类 <html:form action="MyAction.do" method="POST"> ,并且确定在jsp文件中,属性控件str1、str2和result的顺序是 str1,str2,result。


步骤六 : 设定执行组件

单击工具栏中的 Run Configurationg ,将弹出Run的设置菜单。

使用JBuilder开发Struts应用的步骤
使用JBuilder开发Struts应用的步骤

使用JBuilder开发Struts应用的步骤

将Type设置为Server,并且选择JSP/Server中的Jsp为MyJsp1.jsp。

此时执行组件属性设定对话框中主要项目皆已设定完毕,按下 OK 按钮返回项目属性设定对话框。项目属性对话框中将把前述步骤所设定之执行组件列于Runtime Configurations 清单方块中,按下 OK 按钮即完成执行组件设定。


步骤七 : 执行 Web 应用程序

接下来可点击选择 JBuilder 菜单 Run 或工具列中绿色三角形符号执行此 Web 应用程序。JBuilder 将于集成开发环境内激活 Tomcat 4.0 Server,我们可以通过 JBuilder 内置之 Web 浏览器进行测试。在 Web 浏览器中我们键入 AAA 与 BBB 按下 Submit 按钮,得到预期之运算结果AAABBB。

使用JBuilder开发Struts应用的步骤


 

步骤八:设置使之能识别中文文字

处理方法是:

(1)在 JSP 起始处加上:

<%@ page contentType="text/html; charset=MS950" %>对于繁体中文

<%@ page contentType="text/html; charset=GB2312" %> 对于简体中文(常用编码为GB2312)


(2)创建一个Serverlet类处理接收字体的编码


首先,点击选择 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 按钮。
使用JBuilder开发Struts应用的步骤

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

  request.setCharacterEncoding ("MS950") ;
super.process (request, response) ;
request.setCharacterEncoding ("GB2312") ;
super.process (request, response) ;
 
  //繁体中文 //简体中文  

接下来我们将要修改 web.xml部署描述档,以指定 Servlet 之进入点,首先点击选择左上方项目窗格中的 web.xml。
使用JBuilder开发Struts应用的步骤


点击选择内容窗格内的 Sources 页次,直接以文字编辑器修改<servlet-class> 标记的内容: <servlet-class>
mytest.myActionServlet</servlet-class>

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

终于完成了。!!!!!!多提意见埃。。