动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java数据对象(JDO)的前世今生详细.
.dom规范和在java中的实现 sunmin.
.用Java线程获取优异性能(I)??介.
.Javascript实例教程(5) 在一个表.
.JAVA中用动态代理类实现记忆功能.
.使用UML编写Java应用程序 (2)实现.
.全面解析JDBC(1).
.Mini Java编译器(二)——语法(.
.Spring 2.0的新特性点评.
.3D编程指南第三部分:粒子系统和.
.ASM2.0字节码框架介绍.
.java截获标准输出(2).
.Java面试陷阱第三波.
.Sun:JavaFX Mobile和JavaFX Scr.
.菜鸟入门之浅谈新手对CString的使.
.JAVA与数据库连接方法(三).
.突破Java异常处理规则.
.Java程序员 Sun降低开源Java系统.
.J2EE开发平台.
.企业应用的Web服务安全技术:框架.

JBuilder2005 Struts深度体验之新增

发表日期:2008-1-5 |



  新增一个Struts配置文件
  
  考虑到图书模块是一个比较独立的模块,为了避免对Struts配置文件的资源争用导致团队工程的覆盖或冲突,我们为这个模块单独提供一个新的Struts配置文件,用这个配置文件配置图书模块所有Struts关联的信息。
  
  我们按照如下的方式为webModule模块添加一个名为book-struts-config.XML的配置文件。
  
  首先到<工程目录>/webModule/WEB-INF拷贝一个原有的struts-config.xml文件,更名为book-struts-config.xml放在struts-config.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>
  </struts-config>
  
  然后,在工程窗格的资源树中定位到webModule->Deployment descriptors-><Struts 1.1>节点上,右击<Struts 1.1>节点,在弹出的菜单中选择Properties...弹出Properties for ’<Struts 1.1>’对话框,如图 16所示:
   JBuilder2005 Struts深度体验之新增(图一)
  图 16 Struts配置文件维护对话框
  
  点击Add...按钮,在弹出的Choose Struts config file对话框中选择book-struts-config.xml配置文件,按OK这个新的Struts配置文件将添加到Struts config file in web.xml列表中。
  
  新增配置文件成功后,在工程窗格资源树的<Struts 1.1>节点下,你将会发现这个新加入的Struts配置文件,如下图所示:
   JBuilder2005 Struts深度体验之新增(图二)
  图 17 两个Struts配置文件
  
  这样,在创建新的FormBean或Action时,你就可以选择用哪个配置文件来保存Struts的配置信息了。
  
  图书Action Form
  
  下面我们着手创建用于接收新增图书页面表单数据的BookActionForm,使用book-struts-config.xml保存BookActionForm的配置信息。BookActionForm需要进行数据有效性自检,也就是说,要让BookActionForm实现validate()方法。
  
  创建BookActionForm和创建UserActionForm相似,但是在向导的第1步需要指定book-struts-config.xml记录BookActionForm配置信息,如图 18所示:
   JBuilder2005 Struts深度体验之新增(图三)
  图 18 选择不同的配置文件
  
  我们在前一节为Web模块添加了一个配置文件,在Struts config下拉框中列出了Web模块所有配置文件,这里我们选择WEB-INF/book-struts-config.xml。
  
  在向导的第2步,我们为BookActionForm定义下列5个属性:
  
  String bookId;//图书ID,对应T_BOOK表的BOOK_ID,是主键。
  String isbn;//isbn
  String createDate;//创建日期
  String bookName;//书名
  String author;//作者
  
  在向导的第2步直接按Finish创建BookActionForm。由于bookId属性是主键,所以不能和T_BOOK中已有的记录重复,这可以通过BookActionForm的数据自检机制来完成,数据自检是通过定义validate()方法来实现的。向导已经为BookActionForm生成了validate()方法框架,我们只需要在validate()方法编写bookId的校验的代码就可以了,BookActionForm的最终代码如代码清单 10所示:
  
  代码清单 10 BookActionForm.Java
  
  1. package bookstore;
  2.
  3. import javax.servlet.http.HttpServletRequest;
  4. import org.apache.struts.action.*;
  5. import java.sql.*;
  6.
  7. public class BookActionForm
  8.  extends ActionForm {
  9.   …
  10.   public ActionErrors validate(ActionMapping actionMapping,
  11.   HttpServletRequest httpServletRequest) {
  12.    ActionErrors errors = new ActionErrors();
  13.    Connection conn = null;
  14.    try {
  15.     conn = DBConnection.getConnection();
  16.     PreparedStatement pStat = conn.prepareStatement(
  17.      "select count(*) count from T_BOOK where BOOK_ID=?");
  18.     pStat.setString(1, this.bookId);
  19.     ResultSet rs = pStat.executeQuery();
  20.     if (rs.next()&& rs.getInt(1) > 0) {
  21.      errors.add("bookId ",
  22.      new ActionMessage("bookstore.duplicate.bookId",
  23.      "图书ID和数据库中已经有的ID重复"));
  24.     }
  25.    }
  26.    catch (SQLException se) {
  27.     se.printStackTrace();
  28.     errors.add("bookId",
  29.     new ActionMessage("bookstore.dbAccess.error", "访问数据库时出错"));
  30.    }
  31.    finally {
  32.     try {
  33.      if (conn != null) {
  34.       conn.close();
  35.      }
  36.     }
  37.     catch (SQLException ex) {
  38.      ex.printStackTrace();
  39.      errors.add("bookId",
  40.      new ActionMessage("bookstore.dbaccess.error",
  41.        "访问数据库时出错"));
  42.     }
  43.    }
  44.   return errors;
  45.  }
  46.
  47.  public void reset(ActionMapping actionMapping,
  48.   HttpServletRequest servletRequest) {
  49.    this.createDate = getCurrDateStr();
  50.   }
  51.
  52.  //获取当前时间字符
  53.  private static String getCurrDateStr() {
  54.   SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  55.   return sdf.format(new Date());
  56.  }
  57. }
  
  当用户提交表单后,Struts框架自动把表单数据填充到ActionForm中,接着Struts框架自动调用ActionForm的validate()方法进行数据验证。假如validate()方法返回的ActionErrors为null或不包含任何ActionMessage对象,表示通过验证,Struts框架将ActionForm和HTTP请求一起传给Action的execute(),否则Struts框架将HTTP请求返回到输入的页面中,而输入页面即可通过<Html:errors>显示对应request域中的ActionErrors错误信息显示出来。
  
  此外,我们在reset()方法中将createDate属性置为当前的日期,因为这个属性值不是通过页面表单提供的。
  
  新增图书jsp页面
  
  1.通过向导创建bookAdd.jsp
  
  通过JSP向导创建bookAdd.jsp页面,在向导的第2步选择使用Struts1.1的struts-bean和struts-html标签,如图 19所示:
   JBuilder2005 Struts深度体验之新增(图四)
  图 19 指定选用Struts标签
  
  2.使用JBuilder的Struts标签构建JSP页面
  
  你可以直接用拖拽的方法从JBuilder编辑器左边的标签库将Struts标签添加到JSP页面中,如图 20所示:
   JBuilder2005 Struts深度体验之新增(图五)
  图 20 用拖拽的方式添加Struts标签
  
  Struts的html标签可以完成和标准的HTML元素相同的功能,Struts提倡使用Struts html标签库,因为这些标签可以和Struts框架的其他组件紧密地联系起来。而Strtus的bean标签库可以访问已经存在的JavaBean及其属性,有一些bean标签还可以访问HTTP请求头信息及Web资源文件的信息。
  
  我们希望用Struts的html标签库创建添加图书的表单,通过bean标签库访问Web资源文件作为表单组件前的标识文字。
  
  bookAdd.jsp的最终代码如代码清单 11所示:
  
  代码清单 11 bookAdd.jsp
  
  1. <%@page contentType="text/html; charset=GBK" %>
  2. <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
  3. <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
  4. <html>
  5. <head>
  6. <title>bookInsert</title>
  7. <script language="javascript" >
  8. function mySubmit(form)
  9. {
  10. if(form.isbn.value == null form.isbn.value == "")
  11. {
  12.  alert("图书的ISBN不答应为空");
  13.  return false;
  14. }
  15. if(form.bookName.value == null form.bookName.value == "")
  16. {
  17.  alert("图书名不答应为空");
  18.  return false;
  19. }
  20. }
  21. </script>
  22. </head>
  23. <body bgcolor="#ffffff">
  24. <html:errors/>
  25.  <html:form action="/bookInsertAction.do" focus="bookId" method="post"
  26.   onsubmit="return mySubmit(this)" >
  27.  <table width="100%%" border="0">
  28.   <tr>
  29.    <td>
  30.     <bean:message bundle="bookstore" key="bookstore.bookId"/>
  31.    </td>
  32.    <td>
  33.     <html:text name="bookActionForm" property="bookId"/>
  3
上一篇:运用Jakarta Struts的七大实战心法解析 人气:428
下一篇:Struts控制器组件简单介绍 人气:1038
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成