java web 开发问题总结4 原创ITeye - 牛牛娱乐

java web 开发问题总结4 原创ITeye

2019年02月28日08时48分44秒 | 作者: 迎夏 | 标签: 问题,办法,类型 | 浏览: 1054

在保存blob类型文件的时分,假如报出了上面的过错,则把数据库中的类型改动longblob类型就能够,本来的类型为blob

 

122.清空文件域的值

input name="f" type="file" id="f" size="120"

//用下面的代码能够清空文件域的值

input name="clear" type="button" id="clear" value="清空"

 

主要是这段代码:

document.getElementById(f).outerHTML=document.getElementById(f).outerHTML

 

 

123.freemarker变量赋值

#assign x ${list?size} /#assign  

只要把需求赋的值放在 #assign x /#assign 中心就能够了,必定要留意啊!!!!

取list的size:

${list?size}这儿的list为调集

在范围内循环list:

#list attachmentList[1..x] as list

 

/#list

这儿的1是下标开端的方位

X是完毕的下标,在上面咱们能够界说一个变量给x赋值

留意:这儿的X的类型有必要为number类型,所以假如为其他类型这儿需求把X转化为number能够这样[1..(x?number)],其次这儿的X是list的总数-1,所以不要越界,这儿也需求留意,下面举个比如:

#if sendAttachment??

#assign y ${sendAttachment?size} /#assign

#list sendAttachment[1..(y?number-1)] as c

${c}

/#list /#if

上面句子的意思:

#if sendAttachment?? 这句的意思为判别调集是否存在

#assign y ${sendAttachment?size} /#assign 为变量y赋值

#list sendAttachment[1..(y?number-1)] as c 的意思为:[1..(y?number-1)]

这儿1的意思是下标从1开端循环,然后y?number-1的意思是把y转化为number类型然后-1

 

调集循环生成序列办法

#list listValue as list

${list_index}

/#list

 

 

#assign x=1 #if sendAttachment?? #assign y ${sendAttachment?size} /#assign #if y?number =1 #else #list sendAttachment[1..(y?number-1)] as c

 

#assign x=x+1 ${x}.${c}

 

/#list /#if /#if

 

#if y?number =1 判别调集长度是否小于等于1

 

 判别一个值是否存在,存在则读值,不然读默许值

#if speedlevel?exists ${speedlevel} #else 一般 /#if

 

判别是否为空

${name?if_exists}

124.powerDesigner反向生成库

右键库模型- properties- proview

 

这儿面就是数据库的源代码了

 

 

125.使整个页面变灰的css款式(默哀天)

body{filter:Gray;}

在css中参加该款式即可

 

126.文件输出流改写

当用

FileOutputStream fos = new FileOutputStream("E:/3.zip");   BufferedOutputStream bs=newBufferedOutputStream(fos);

byte[] buffer = new byte[1024];

       while(true){

           try {

           int k = bi.read(buffer);

           File newfile=new File("E:\\3.zip");

           System.out.println(newfile.length()+"+++++++++++++++++++++");

//         System.out.println(k+"_______________________________________");

           if(k-1){

              break;

           }else{

              bs.write(buffer);

           }

           } catch (IOException e) {

              e.printStackTrace();

           }

       }

       try {

           bs.flush();

           bs.close();

           bi.close();

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

输出流进行输出时

 

最好在最终的时分改写输出流

bs.flush();

不然有时分会在最终的时分少一些文件流的信息。

 

 

127.用freemarker生成动态页面时,最好用shtml

用freemarker生成动态页面时,最好不必把扩展名界说为html,除非生成真实的静态页(.html),不然最好运用shtml,或许其他扩展名

 

128.Freemarker 的if用法

#if sendName?exists ${sendName} #else /#if

 

sendName?exists或sendName??判别是否为null

 

 

129.outlook保存服务器副本

 

然后点击更改-

 

 

挑选其他设置- 高档- 勾选上“在服务器上保存邮件副本”

 

假如需求发送邮件需求进行如下设置:

在发送服务器中设置上用户名和暗码

130.抛反常处理,直接输出到指定文件方位

       try {

           list = this.getHibernateTemplate().find(hql);

       } catch (Exception e) {

           e.printStackTrace(new PrintStream(new File("E:\\1.txt")));

       }

 

 

 

131.mailto 传参数乱码

假如直接

a href="mailto:?subject=中文" 联络咱们 /a

用utf-8编码,传到outlook中将会是乱码,假如传中文的话,那么需求将页面的编码改为gb2312就没有问题

html xmlns="http://www.w3.org/1999/xhtml"

head

meta http-equiv="Content-Type" content="text/html; charset=gb2312" /

title 无标题文档 /title

/head

body

a href="mailto:?subject=中文" 联络咱们 /a

/body

/html

 

 

132.Extjs图片途径问题

如页面是http://localhost:8080/caep/index.html

Extjs的文件夹在caep/js下

那么设置图片途径为:

Ext.BLANK_IMAGE_URL="js/resources/images/default/s.gif";

取相对途径就能够了。

 

133.在PPT和word中增加暗影效果


 

 

 

 

 

134.目标比较用equals

Integer类型和Integer 类型做比较时,假如2个数值很大,如1802和1802用“”来比较则会有问题,所以用equals比较,是经过目标比较则没有问题;或许就用原始类型int类比较也能够

 

 

135.Js动态写json的 key

needWomanRes[key]

 

 

136.在eclipse中导入jar包

右键项目特点,翻开窗口:

然后点击Add JARs…

能够增加本项意图jar包

 

137.Js函数参数调用

在js的函数中,将函数作为参数,则需求如下进行解析

eval(函数名);

 

例:

function test(way){

 //解析后就能够履行way办法了

 eval(way);

}

 

在页面中调用办法时:

test(‘test1(/’aaaa/’)’)”

在进行传递参数时,有时需求进行字符转义/’/’

 

 

138.spring 业务处理反常回滚

在service中,现已注册了业务署理

在service中A办法调用B办法时

有必要A()和B(),这2个办法都进行throws Exception,抛反常处理,在控制器中才能够获取到反常;

假如A进行了try catch的办法进行自界说处理则不能进行捕获反常进行回滚。

 

 

139.表单项的NAME特点无法进行赋值

在页面中假如不进行增加上这一行:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

 

那么假如用

document.getElementById("111").setAttribute("name","single");

对表单项的name特点进行赋值时,经过下面的句子变获取不到name特点

       alert(document.body.innerHTML);

所以假如需求对name特点进行操作时,需求加上w3c规范

 

 

140. JS 比较字符串疏忽大小写

Var a=”Abc”;

Var b=”aBc”;

因为在js中比较只能用

所以:

Alert(ab);

输出成果是false

因为他们的值不相同,有大写有小写

所以咱们就将他们一致转化为小写进行比较:

a =a. toLowerCase();

b=b. toLowerCase();

alert(ab);

输出为true

所以咱们假如要疏忽大小写比较时,最好先将字符穿进行大小写一致转化在js中,方才用的就是将字符穿一致转化为小写:toLowerCase()

 

 

141.fck_docprops.html报错处理

在Java的工程中参加fck时MyEclipse会包fck_docprops.html过错,原因是因为用了奇怪的标签,没有通知MyEclipse,处理办法:

选中当时工程—properties—MyEclipse—validation—Excluded Resource下找到fck_docprops.html打钩就能够不查看该文件了,然后就不报错了!

142.FCK装备

在web.xml中装备上:

 

servlet

        servlet-name Connector /servlet-name

        servlet-class

           net.fckeditor.connector.ConnectorServlet

        /servlet-class

        load-on-startup 1 /load-on-startup

     /servlet

 

     servlet-mapping

        servlet-name Connector /servlet-name

               url-pattern /fckeditor/editor/filemanager/connectors/* /url-pattern

     /servlet-mapping

 

然后在classpath下装备上:

fckeditor.properties文件

内容为:

connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl

 

 

然后需求在lib中引进这么些包

Java-core-2.4.1.jar是fck的核心包,web.xml中装备中也是引进的该包内容,假如不进行该包装备,那么发动项目时会找不到相应的类,如报错:

找不到net.fckeditor.connector.ConnectorServlet类

 

 

143.Mysql #1005 - Cant create table .\anykorea\anykorea_feedback.frm (errno: 121)过错处理办法

 

#1005 - Cant create table .\anykorea\anykorea_feedback.frm (errno: 121)在创立表时假如mysql报了上面的过错,那么是因为在创立表时的外键的称号与曾经表的外键称号相同了,所以改下外键的称号从头创立表就能够了。

 

 

144目标未注入ID,无法找到目标引起的HIBERNATE问题处理办法

 

org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: com.ecoinfo.caep_auth.vo.AuthMenuModel; nested exception isorg.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.ecoinfo.caep_auth.vo.AuthMenuModel

 

在一个目标(POJO)进行保存相关目标时,需求进行注入,而注入时,目标不能是个无索引的目标,上面的过错就是AuthMenuModel这个类,因为没有注入ID,所以在库中找不到,所以被界说为一个未保存的暂时目标,所以在new了一个暂时目标后,假如需求外键刺进必定要setID,不然会找不到,就会报这个问题了,无法呈现暂时目标,所以将AuthMenuModel注入ID后,再刺进到目标中,然后保存就没有问题了。

 

例:

AuthUserPermission authUserPermission=new AuthUserPermission();

AuthMenuModel authMenuModel=new AuthMenuModel();

       authDao.saveObject(authUserPermission);

 

这样履行后,就会报上面的过错,因为authMenuModel是个暂时目标,在库中没有找到;

AuthUserPermission authUserPermission=new AuthUserPermission();

AuthMenuModel authMenuModel=new AuthMenuModel();

authMenuModel.setId(menuModelKey);

       authDao.saveObject(authUserPermission);

这样注入ID后,目标就有了索引,依据索引能够注入了,所以就不会呈现问题了。

 

 

145 union 和union all 用法总结

大约的思维是用union 和union all

 

兼并重复行

select * from A

union

select * from B

 

 

不兼并重复行

select * from A

union all

select * from B

 

 

按某个字段排序

兼并重复行

select *

from (

select * from A

union

select * from B) AS T

order by 字段名

 

不兼并重复行

select *

from (

select * from A

union all

select * from B) AS T

order by 字段名

 

 

146 hibernate 父类获取子类类型

在hibernate 中装备类子类后,其顶用一表多类的办法进行装备后,那么将会有一个是隐性字段,那么咱们怎么经过父类获取子类类型呢?而且在hql中进行查询,那么在下面举个比如来看一下:

其间hbm.xml装备如下:

     class name="com.ecoinfo.caep_auth.vo.AuthAuthGU" table="auth_auth_g_u"

         id name="id" type="long"

             column name="id" /

             generator  /

         /id

         discriminator type="java.lang.String" column="type" /

        

         many-to-one name="authMenuModel"  fetch="select"

             column name="menu_model_id" /

         /many-to-one

         many-to-one name="permissions"

         column name="permission_id" /column

         /many-to-one

          property name="status" type="java.lang.Integer"

             column name="status" /

         /property

         subclass name="com.ecoinfo.caep_auth.vo.AuthUserPermission" discriminator-value="user"

         many-to-one name="user" fetch="select"

               column name="auth_id" /

         /many-to-one

         /subclass

         subclass name="com.ecoinfo.caep_auth.vo.AuthUserGroupPermission" discriminator-value="group"

         many-to-one name="group" fetch="select"

                column name="auth_id" /

         /many-to-one

         /subclass

      

/class

 

那么假如咱们经过父类要查询该类是归于哪种类型怎么进行判别呢?

那么就用反射的机制进行判别

如:

String hql=”from AuthAuthGU aag where aag. >

那么也就是类型为AuthUserPermission类的被查询出来(也就是type类型为user)

 

 

147.FCK 工具栏创立、修正和引证

在fckconfig.js中找到FCKConfig.ToolbarSets 段,默许有两个工具条款式,一个是Default,一个是Basic

如:

FCKConfig.ToolbarSets["Default"] = [

       [Source,DocProps,-,Save,NewPage,Preview,-,Templates],

       [Cut,Copy,Paste,PasteText,PasteWord,-,Print,SpellCheck],

       [Undo,Redo,-,Find,Replace,-,SelectAll,RemoveFormat],

      [Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField],

       /,

       [Bold,Italic,Underline,StrikeThrough,-,Subscript,Superscript],

       [OrderedList,UnorderedList,-,Outdent,Indent,Blockquote,CreateDiv],

       [JustifyLeft,JustifyCenter,JustifyRight,JustifyFull],

       [Link,Unlink,Anchor],

       [Image,Flash,Table,Rule,Smiley,SpecialChar,PageBreak],

       /,

       [Style,FontFormat,FontName,FontSize],

       [TextColor,BGColor],

       [FitWindow,ShowBlocks,-,About]          // No comma for the last row.

] ;

 

FCKConfig.ToolbarSets["Basic"] = [

       [Bold,Italic,-,OrderedList,UnorderedList,-,Link,Unlink,-,About]

] ;

 

 

其间语法:

其定制语法很简单
[]  表明一个工具条,
[]  中的短横线-表明一个笔直分割线
  两个单引号中心加一个标识符表明一个工具栏按钮,详细的对应联系能够自己找。
/ 效果类似于一个回车。使该符号后边的工具栏新起一行摆放。

 

假如需求新建一个工具栏款式则:

FCKConfig.ToolbarSets["Train"] = [

       [Bold,Italic,-,OrderedList,UnorderedList,-,Link,Unlink,-,About]

] ;

 

我新建了一个工具栏Train,而且里边有相应的按钮特点

然后在咱们的页面中进行调用,如:

        FCK:editor id="content" basePath="/china-eia/FCKEditor/" toolbarSet="Train" width="100%" height="270" ${content }                  

                             /FCK:editor

 

将toolbarSet="Train"为新建的工具栏就能够了,因为版别和调用办法不同,或许运用上有不一致,可是只要将页面中的toobarSet设置为相应的称号就OK了。

 

148 sql中exists与in的功率差异

两张表——用户表TDefUser(userid,address,phone)和消费表 TAccConsume(userid,time,amount),需求查消费超越5000的用户记载。

用exists:

select * from TDefUser

where exists (select 1 from TAccConsume where TDefUser.userid=TAccConsume.userid and TAccConsume.amount 5000)

用in:

select * from TDefUser

where userid in (select userid from TAccConsume where TAccConsume.amount 5000)

 

通常情况下选用exists要比in功率高。

 

exists()后边的子查询被称做相关子查询 他是不回来列表的值的.仅仅回来一个ture或false的成果(这也是为什么子查询里是"select 1"的原因,换成"select 6"彻底相同,当然也能够select字段,可是显着功率低些)

其运转办法是先运转主查询一次 再去子查询里查询与其对应的成果 假如是ture则输出,反之则不输出.再依据主查询中的每一行去子查询里去查询.

 

in()后边的子查询 是回来成果集的,换句话说履行次第和exists()不相同.子查询先发生成果集,然后主查询再去成果集里去找符合要求的字段列表去.符合要求的输出,反之则不输出.

 

149 MySql#1166 - Incorrect column name 的处理办法

今日在用phpMyAdmin给数据库中的表增加一个字段时报如下的过错

过错

SQL 查询:

CREATE TABLE `abc`.`html_content` (

`category_id` INT NULL ,
`h_status ` TINYINT NULL

) ENGINE = MYISAM ;

MySQL 回来:

#1166 - Incorrect column name h_status

处理办法,字段是仿制的吧,仿制的里边是不是有空格?去掉就能够了,嗯

 

150运转Rose 提示过错: 未找到 suite objects.dll

我在win7上装置的目录是E:\Program Files\Rational

suite objects.dll在Common(大写)下,

翻开环境变量(如下阐明)查看到rose的途径下Common是大写的common,所以从头把path里的途径重写了一下。这次再运转····OK了··

其实suite objects.dll 还在你的电脑中,仅仅环境变量错了或许没设置,形成找不到。我装置的地址是E:\Program Files\Rational\,suite objects.dll在E:\Program Files\Rational\Common文件夹下。处理过程如下:

1.右击 我的电脑
2.挑选 高档- 环境变量
3.修改path,在原path增加 ";E:\Program Files\Rational\Common"(引号内增加,引号不必加进去)
4.发动rose,OK。

 

 

151 sql兼并表,标识字段来历

select id,name,englisheName, 1 as "table" from tab1

UNION

select id,name,englisheName, 2 as "table" from tab2

 

兼并后,在每个查询句子中参加标识判别兼并字段来历

 

152.动态加载图画

script language="JavaScript"

     myImage = new Image;

       myImage.src = "Tellers1.jpg";

/script

 

153 网页封闭时调用js

script language="JavaScript"

       function a(){

              alert();

       }

       window.onunload = a; //注册封闭后的事情

 

/script

 

154当链接(a)触发单击事情时进行监听

document.onclick   =   function(e){

    var   e   =   e   ||   event;

    var   element   =   e.target   ||   e.srcElement;

    if(element.tagName.toLowerCase()      "a"){

        element.isVisited   =   true;

             

    }

}

155 Js获取当时url

location.href

 

156 Js获取父页url

If window.opener.!=undefined){

window.opener.location.href

}

 

 

157 jsp中获取前一个页面的url包含参数

假如有两个页面  index.jsp 和indexto.jsp

一 index.jsp中有如下链接
a href="indexto.jsp" indexto /a

二 indexto.jsp中
%
String url = request.getHeader("Referer");
System.out.println(url);
%

当咱们拜访 ../index.jsp?id=2 时进入index页面, 点击indexto链接.

在控制台将输出../index.jsp?id=2 也就是说在indexto.jsp页面获取了,index的url包含参数.

 

 

158 win7下装置oracle10g的办法 (Forward)

win7下装置oracle10g的办法

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章