当前页面: 开发资料首页 → Struts 专题 → 用jdeveloper开发struts系统入门
摘要: 用jdeveloper开发struts系统入门 JBuilder也许是现在最为流行的Java开发工具,但它不是免费的,在最新版的JBuilder9中会自动向Borland公司发信息,很容易被查出...
JBuilder也许是现在最为流行的Java开发工具,但它不是免费的,在最新版的JBuilder9中会自动向Borland公司发信息,很容易被查出是否在使用盗版。而struts是现在最流行的web系统架构,JBuilder9自带的竟然还是struts1.0。当然,我个人还是很喜欢Borland公司的产品,但由于种种原因,公司改用了Oracle的JDeveloper。JDeveloper1.0是Oracle公司从Borland买了JBuilder代码改造而成的,听闻着很少。但从JDeveloper3.0开始,JDeveloper开始集成了Oracle的BC4J开发组件(这是一个很强大、易用的开发组件),JDevelpoer开始受到关注。下面,我将介绍一下如何在JDeveloper903上开发struts系统。 一 准备工作 1.1 下载JDeveloper 首先,从Oracle的网站上下载最新版本的JDeveloper9.03.3版本,JDeveloper现在是免费的。 1.2 关于Oc4j 在JDeveloper中还自带了Oracle的一个应用服务器OC4J。解压所下载的压缩包,在JDeveloper目录下的j2ee文件夹就是OC4J所在的目录。如果要手工启动Oc4j,我们可以在在它所在的目录下执行java ?Cjar oc4j.jar。Oc4j的用法和功能在这里不详细介绍。 二 开发struts系统 2.1 运行JDeveloper 在JDeveloper所在目录下的[JDeveloperHome]jdev\bin中的jdevw.exe就是JDeveloper在windows中的运行程序。运行JDeveloper后界面如下图: ![]() 图1 JDeveloper的struts开发支持struts的最新版本struts1.1,并且提供了struts开发向导。下面,我们将介绍如何用JDeveloper开发struts系统。 2.2 构建struts系统环境 1) 首先,我们要创建一个工作空间(workspace)。在JDeveloper中有一个根工作空间,右击(鼠标右键单击)根工作空间,在弹出菜单中选择“new workspace…”创建一个新的工作空间。 2) 通过File|New…|General|Empty Project创建一个名为strustdemo的空的工程。 3) 在新的工作中通过struts系统向导完成struts开发环境的创建。 在File|New菜单下选择Web-Tier分枝下的struts,在右边的选项中选择“starter application”,单击“OK” 按钮。 ![]() 图2 完成了上面的步骤,一个struts的开发环境就完成了。从JDeveloper中我们可以看到向导为我们的工程添加了web.xml、struts-config.xml和一个proterties文件。 2.3 一个struts的开发实例 这只是一个简单的实例,用户输入网址,将弹出一个JSP页面,在JSP页面中输入用户信息并提交,将在同一页面中显示出信息列表。 2.3.1 编辑struts-config.xml文件 首先,我们在struts-config.xml中添加actionmapping、在JSP中用于接收用户输入信息的DynaActionForm。 右击struts-config.xml,在弹出菜单中选择“Edit Struts Config…”项,将弹出struts-config.xml文件的编辑器。 ![]() ![]() 图3 从图3可看到,JDevelpoer为我们提供了配置struts-config.xml文件的工具。 1) 先选择Form Beans分支添加一个ActionForm ![]() 图4 2) 先选择Action Mapping分支,然后添加两个ActionMapping,设置如下 ![]() 图5 ![]() 图6 从图3中我们可以看到,还可以通过这个编辑器来编辑Exception、plugs等struts1.1的新特性。 2.3.2 编辑JSP 在File|New菜单下选择Web Tier分支下JavaServer Page(JSP),在右边的选项中选择JSP Page,创建一个名为testdynaform的JSP。 在JDeveloper中提供了编写struts tag的工具,在View|Component Palette可以打开。 ![]() 图7 只要选中所要编辑的标志,然后把它拖到JSP文件中就完成了一个标志的编写。下面是testdynaform.jsp的代码: <%@ page language="java" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <html:html> <head> <title>测试动态form</title> <html:base/> </head> <body bgcolor="white"> <html:form action="testdynaform"> <table border="0" width="100%"> <tr> <th align="left"> 用户名 </th> <td align="left"> <html:text property="userName" size="30" maxlength="30"/> </td> </tr> <tr> <th align="left"> 性别 </th> <td align="left"> <html:text property="sex" size="60" maxlength="60"/> </td> </tr> <logic:present name="result" scope="request"> <logic:iterate id="item" name="result" type="mypackage1.User"> <TR> <TD><bean:write name="item" property="userName"/></TD> <TD><bean:write name="item" property="sex"/></TD> </TR> </logic:iterate> </logic:present> <tr colspan="1"> <td> <html:submit property="submit" onclick="bCancel=false;"> 提交 </html:submit> </td> </tr> </table> </html:form> </body> </html:html> 2.3.4 编写Action 在File|New菜单下选择Web-Tier分枝下的struts,在右边的选项中选择“Action”,单击“OK” 按钮。把创建的Action命名为TestDynaFormAction。在产生的代码的execute函数中添加如下代码: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { DynaActionForm dform = (DynaActionForm)form; String name = (String)dform.get("userName"); String sex = (String)dform.get("sex"); System.out.println("name = " + name + " , sex" + sex); String name1 = name + "1"; String sex1 = sex + "1"; dform.set("userName", name1); dform.set("sex", sex1); User[] result = { new User(), new User(), new User() }; result[0].setUserName(name); result[0].setSex(sex); result[1].setUserName(name1); result[1].setSex(sex1); result[2].setUserName(name1 + "1"); result[2].setSex(sex1 + "1"); request.setAttribute("result", result); //OK return mapping.findForward("success"); } 2.3.5 编写一个bean 通过File|New…|Java Class新建一个名为User的class,这个类是一个JavaBean,用于存放用户信息。右击User.java,在弹出菜单中选择Class Editor。 ![]() 图8 在class编辑器中添加两个成员变量 ![]() 图9 只要添加了成员变量,那么相应的geter和seter方法就会自动生成。 2.3.6 运行程序 右击struts-config.xml下的index,在弹出菜单中选择“Run index”就可运行上面所创建的例子。 ![]() 图10 运行结果为: ![]() 图11 |