项目外传3

    1、 关于<form>元素嵌套的问题:    
         

                   在网页制做中,当表格和〈Form〉〈/Form〉标签嵌套时,如果像如下的形式:
〈table border=1〉 〈tr〉 〈td〉 〈Form〉 〈input name= size=〉 〈input type=button
value=Test〉 〈/Form〉 〈/td〉 〈/tr〉 〈/table〉
那么在〈Form〉构造出的文本框下会有一个空行,非常影响版面的编排。 而只要把〈/Form〉放到表格标签〈/td〉、〈/tr〉或〈/table〉的外边(如下),则问题就解决了。
〈table border=1〉
〈tr〉 〈td〉 〈Form〉 〈input name= size=〉 〈input type=button value=Test〉 〈/td〉
〈/Form〉 〈/tr〉 〈/table〉

 

   2、  在项目过程之上传图片的环节中我考虑到了避免重名的问题并想出了用系统时间来避免重名覆盖的问题, 但是发现一个网友的做法更周密, 先粘贴如下:

            、  System.Text.StringBuilder strbder = new System.Text.StringBuilder();    //StringBuilder对象组建字符串
           
            string FullFileName = this.File1.PostedFile.FileName;        //获得客户浏览器选择文件的全部路径以及文件名
            string UpFileName = FullFileName.Substring( FullFileName.LastIndexOf("//") + 1);        //以"/"为索引截取获得文件名,用途是获得文件格式
            string FileType = UpFileName.Substring( UpFileName.LastIndexOf(".") + 1 );        //以"."为索引街区获得文件类型

            //以下操作是为了避免在同一时间有多人同时上传,造成文件名相同而发生覆盖现象,
                //这里以长时间加随机数来尽量避免,可以加大随机数而继续降低重名几率
            System.DateTime currentTime=new System.DateTime();        //创建时间对象
            currentTime = System.DateTime.Now;        //设置当前时间
            strbder.Append(currentTime.Year.ToString());    //年
            strbder.Append(currentTime.Month.ToString());    //月
            strbder.Append(currentTime.Day.ToString());        //日
            strbder.Append(currentTime.Hour.ToString());    //小时
            strbder.Append(currentTime.Minute.ToString());    //分钟
            strbder.Append(currentTime.Second.ToString());    //秒
            Random objRdm = new Random();        //创建随机对象
            strbder.Append(objRdm.Next(1,200).ToString());        //生成一个1--200之间的随机数

            UpFileName = strbder.ToString() + "." + FileType;    //正式组建在服务器存储的文件名
            UpFileName = UpFileName.ToLower();        //全部设置为小写,避免带来的不方便
            FileType = FileType.ToLower();        //设置为小写,主要用来判断

            if( FileType == "bmp" || FileType =="jpg" || FileType =="gif" )        //接受的类型,这样可以屏蔽用户扩展名的大小写不统一
            {
                this.File1.PostedFile.SaveAs( Server.MapPath("up") + "//" + UpFileName );        //正式上传操作
                this.Image1.ImageUrl = "up" + "//" + UpFileName;        //设置Image1的路径来显示图片
                this.Image1.Visible = true;                               
                Response.Write("<script>window.alert('文件上传成功!');</script>");        //提示用户成功
            }
            else
            {
                Response.Write("<script>window.alert('文件格式错误!只接受bmp,jpg,gif格式的文件');</script>");        //提示格式错误
            }

      3、 试验中碰到了如下的异常:  java.sql.SQLException: 无效的列类型

    ————解决了问题, 出错原因: 数据库中限定的长度小于实际插入的列值的长度

  4、在项目过程中有往数据库中插入date类型的值, 但是我的bean里面接受表单传过来的值为字符串形式的。 我想到了将字符串转换成date类型的值再插入数据库,查看了一下API使用了simpledateformat这个类的parse方法,正当满心欢喜时程序运行报异常。 排查了好久才发现自己使用的date是java.util.date而非java.sql.date。

        我使用的是simpledateformat()字符串的格式是"yyyy-mm-ddThh:mm:ss",使用parse()后测试输出类似Mon Oct 27 09:30:32 CST 2008的时间格式,现在要将这个值插入到oracle数据库中类型为date的字段中,结果只插入了2008-10-27,后面的时分秒插不进去....我试过很多string转date类型的方法,都得不到想要的结果

      ————解答之:      这个原因不是你转换的问题,而是数据库中的字段的类型问题,Date型的数据的话就只包含日期不包含时间。你可以将数据类型设置为TIMESTAMP
补充~~~~~~~~~~~~~~~~~~~~~~~~~~
那就没有办法了,只能这样了。Date只能放日期

       请参考java.sql.Date类
java.sql.Date date=java.sql.Date.valueOf("yyyy-mm-ddThh:mm:ss"); 
 

     5、 在tomcat6.0下部署web工程失败, 经排查得出原来是因为 存在一些jar包没有导入

      6、 在自定义MVC框架下, 刘洋的action后的xxx.do不需要加上lsr/backpages/之类的东东, 而我的假如直接写成xxx.do就报空指针异常, 但是当我写成lsr/backpages/xxx.do则成功了。 经过与刘洋的工程目录对比, 发现它目录下的images、js、css等没有直接放在webroot之下的,  是这个原因吗? ————有待排查....

    7、为了便于处理一般把下拉列表的值域文本域中的值设置为相同的

   8、 java.sql.SQLException: ORA-01858: 在要求输入数字处找到非数字字符
   ——一开始我总是认为是在数字列插入了非数字, 后经排查原来问题是处在系统日期身上。 我要往数据库中插入一个系统日期, 而我起初就直接拼成字符串 "sysdate".

      后来使用如下方法搞定:
       Date date = new Date();
  java.sql.Date sqlDate = new java.sql.Date(date.getTime());
然后再往数据中插入sqlDate  ^_^  ^_^ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值