随笔-8  评论-4  文章-2  trackbacks-0
  2008年3月30日

共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。

     一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。

  设f(x,y)为一幅二维数字图象,其大小为M×N,灰度级别为Ng,则满足一定空间关系的灰度共生矩阵为

P(i,j)=#{(x1,y1),(x2,y2)∈M×N|f(x1,y1)=i,f(x2,y2)=j}

  其中#(x)表示集合x中的元素个数,显然P为Ng×Ng的矩阵,若(x1,y1)与(x2,y2)间距离为d,两者与坐标横轴的夹角为θ,则可以得到各种间距及角度的灰度共生矩阵P(i,j,d,θ)。

纹理特征提取的一种有效方法是以灰度级的空间相关矩阵即共生矩阵为基础的[7],因为图像中相距(Δx,Δy)的两个灰度像素同时出现的联合频率分布可以用灰度共生矩阵来表示。若将图像的灰度级定为N级,那么共生矩阵为N×N矩阵,可表示为M(Δx,Δy)(h,k),其中位于(h,k)的元素mhk的值表示一个灰度为h而另一个灰度为k的两个相距为(Δx,Δy)的像素对出现的次数。
  对粗纹理的区域,其灰度共生矩阵的mhk值较集中于主对角线附近。因为对于粗纹理,像素对趋于具有相同的灰度。而对于细纹理的区域,其灰度共生矩阵中的mhk值则散布在各处。

    为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种:

(1)能量: 是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反,如果其中一些值大而其它值小,则ASM值大。当共生矩阵中元素集中分布时,此时ASM值大。ASM值大表明一种较均一和规则变化的纹理模式。

(2)对比度: ,其中 。反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。

(3)相关:它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。

(4)熵: 是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。

(5)逆差距: 反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。

其它参数:

中值<Mean>

协方差<Variance>

同质性/逆差距<Homogeneity>

反差<Contrast>

差异性<Dissimilarity>

熵<Entropy>

二阶距<Angular Second Moment>

自相关<Correlation>

posted @ 2008-03-30 13:15 tyut 阅读(151) | 评论 (1)编辑
  2008年3月25日
任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:
1.浮点算法:Gray=R*0.3+G*0.59+B*0.11
2.整数方法:Gray=(R*30+G*59+B*11)/100
3.移位方法:Gray =(R*28+G*151+B*77)>>8;
4.平均值法:Gray=(R+G+B)/3;
5.仅取绿色:Gray=G;
  通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。



灰度是指黑白图像中点的颜色深度,范围一般从0到255,白色为255 ,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途。
"灰度“代表DPI的值,DPI的意思是每平方英寸有多少象素点,象素点越大,图象的精确
度越大,同时文件的尺寸也越大,当然也不是DPI越大就越好,具体情况具体分析。
posted @ 2008-03-25 14:58 tyut 阅读(189) | 评论 (0)编辑
  2008年3月23日
到底在哪用inverse="ture"?  
   
inverse属性默认是false的,就是说关系的两端都来维护关系。这个意思就是说,如有一个Student,   Teacher和TeacherStudent表,Student和Teacher是多对多对多关系,这个关系由TeacherStudent这个表来表现。那么什么时候插入或删除TeacherStudent表中的记录来维护关系呢?在用hibernate时,我们不会显示的对TeacherStudent表做操作。对TeacherStudent的操作是hibernate帮我们做的。hibernate就是看hbm文件中指定的是"谁"维护关系,那个在插入或删除"谁"时,就会处发对关系表的操作。前提是"谁"这个对象已经知道这个关系了,就是说关系另一头的对象已经set或是add到"谁"这个对象里来了。前面说过inverse默认是false,就是关系的两端都维护关系,对其中任一个操作都会处发对表系表的操作。当在关系的一头,如Student中的bag或set中用了inverse="true"时,那就代表关系是由另一关维护的(Teacher)。就是说当这插入Student时,不会操作TeacherStudent表,即使Student已经知道了关系。只有当Teacher插入或删除时才会处发对关系表的操作。所以,当关系的两头都用inverse="true"是不对的,就会导致任何操作都不处发对关系表的操作。当两端都是inverse="false"或是default值是,在代码对关系显示的维护也是不对的,会导致在关系表中插入两次关系。  
   
在一对多关系中inverse就更有意义了。在多对多中,在哪端inverse="true"效果差不多(在效率上)。但是在一对多中,如果要一方维护关系,就会使在插入或是删除"一"方时去update"多"方的每一个与这个"一"的对象有关系的对象。而如果让"多"方面维护关系时就不会有update操作,因为关系就是在多方的对象中的,直指插入或是删除多方对象就行了。当然这时也要遍历"多"方的每一个对象显示的操作修关系的变化体现到DB中。不管怎样说,还是让"多"方维护关系更直观一些。

转自:http://hi.baidu.com/myj2ee/blog/item/c9cdd6ed869d48d7b21cb108.html
posted @ 2008-03-23 18:23 tyut 阅读(18) | 评论 (0)编辑
 如表  
  -------------------------------------------------  
  table1 | table2 |  
  -------------------------------------------------  
  id name |id score |  
  1 lee |1 90 |  
  2 zhang |2 100 |  
  4 wang |3 70 |  
  -------------------------------------------------  
   
  以下均在查询分析器中执行  
   
  一、外连接  
  1.概念:包括左向外联接、右向外联接或完整外部联接  
   
  2.左连接:left   join   或   left   outer   join  
  (1)左向外联接的结果集包括   LEFT   OUTER   子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。  
  (2)sql语句  
  select   *   from   table1   left   join   table2   on   table1.id=table2.id  
  -------------结果-------------  
  id name id score  
  ------------------------------  
  1 lee 1 90  
  2 zhang 2 100  
  4 wang NULL NULL  
  ------------------------------  
  注释:包含table1的所有子句,根据指定条件返回table2相应的字段,不符合的以null显示  
   
  3.右连接:right   join   或   right   outer   join  
  (1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。  
  (2)sql语句  
  select   *   from   table1   right   join   table2   on   table1.id=table2.id  
  -------------结果-------------  
  id name id score  
  ------------------------------  
  1 lee 1 90  
  2 zhang 2 100  
  NULL NULL 3 70  
  ------------------------------  
  注释:包含table2的所有子句,根据指定条件返回table1相应的字段,不符合的以null显示  
   
  4.完整外部联接:full   join   或   full   outer   join    
  (1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。  
  (2)sql语句  
  select   *   from   table1   full   join   table2   on   table1.id=table2.id  
  -------------结果-------------  
  id name id score  
  ------------------------------  
  1 lee 1 90  
  2 zhang 2 100  
  4 wang NULL NULL  
  NULL NULL 3 70  
  ------------------------------  
  注释:返回左右连接的union(见上左、右连接)  
   
  二、内连接  
  1.概念:内联接是用比较运算符比较要联接列的值的联接  
   
  2.内连接:join   或   inner   join    
   
  3.sql语句  
  select   *   from   table1   join   table2   on   table1.id=table2.id  
  -------------结果-------------  
  id name id score  
  ------------------------------  
  1 lee 1 90  
  2 zhang 2 100  
  ------------------------------  
  注释:只返回符合条件的table1和table2的列  
   
  4.等价(与下列执行效果相同)  
  A:select   a.*,b.*   from   table1   a,table2   b   where   a.id=b.id  
  B:select   *   from   table1   cross   join   table2   where   table1.id=table2.id     (注:cross   join后加条件只能用where,不能用on)  
   
  三、交叉连接(完全)  
   
  1.概念:没有   WHERE   子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生3*3=9条记录)  
   
  2.交叉连接:cross   join   (不带条件where...)  
   
  3.sql语句  
  select   *   from   table1   cross   join   table2  
  -------------结果-------------  
  id name id score  
  ------------------------------  
  1 lee 1 90  
  2 zhang 1 90  
  4 wang 1 90  
  1 lee 2 100  
  2 zhang 2 100  
  4 wang 2 100  
  1 lee 3 70  
  2 zhang 3 70  
  4 wang 3 70  
  ------------------------------  
  注释:返回3*3=9条记录,即笛卡尔积  
   
  4.等价(与下列执行效果相同)  
  A:select   *   from   table1,table2  


转自:http://323229113.blog.163.com/blog/static/2185362820070172553209/
posted @ 2008-03-23 10:56 tyut 阅读(245) | 评论 (0)编辑
  2008年3月18日




windows下安装解压版mysql
1、下载mysql
       http://dev.mysql.com/downloads/
2、将mysql解压到待安装目录,使用%MYSQL_HOME%表示。
3、编辑my.ini文件(该文件放到C:\windows目录下,此处假设mysql的安装路径为c:/mysql),内容如下:
[mysqld]
#default-character-set=gbk
basedir=c:/mysql
datadir=c:/mysql/data
[WinMySQLadmin]
Server=c:/mysql/bin/mysqld-nt.exe

4、打开windows的cmd命令窗口,进入到c:/mysql/bin。
5、执行命令: mysqld-nt.exe --install (安装到windows的服务)
6、执行命令: net start mysql
7、测试mysql:在Dos控制台里输入“mysqlshow -u root -p”,回车,提示输入密码,回车即可(默认初始密码为空),显示如下:+--------------------+
    |     Databases      |
    +--------------------+
    | information_schema |
    | cluster            |
    | mysql              |
    | test               |
    +--------------------+
则说明mysql已经正常启动;

8、修改初始密码:在Dos控制台输入“mysqladmin -u root -p password 你的密码”,回车,提示输入原有密码,再回车即可,更改密码成功,使用上一步可检验;
例如:mysqladmin -u root -pmyoa888 password myoa777
这里的myoa777将是你的新数据库root用户密码,用户以自己希望设定的为准。{要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码,除非请求管理员。}

9、设置开机自动启动:为了让mysql在每次开机的时候自动启动,可将mysql设置为一个自动启动的服务,可在Dos控制台输入如下命令:myslqd -install,系统提示服务安装成功!
一般情况下,这样操作后,mysql安装完成。 

注:
1、如果以前系统存在mysql。则进入以前系统存在的mysql目录,执行 mysqld-nt.exe --remove(先从系统中移
      除mysql服务)在开始执行上面第4步。
2、如果出现1067错误,一般是my.ini文件配置问题。更改my.ini文件使之符合本地情况.
posted @ 2008-03-18 21:44 tyut 阅读(136) | 评论 (0)编辑
  2008年3月16日

《魔兽争霸3》祥解:暗夜精灵

 

暗夜精灵
隐居的暗夜精灵是魔兽争霸的世界中诞生最早的种族。这些神秘而不朽的生命最先学会使用魔法,并在人类和兽人的第一次战争之前的一万年就以开始用魔法改造世界了。由于暗夜精灵肆意的使用魔法最终导致燃烧军团来到了世界上,并在两个强大的种族间引发了一场灾难性的恶战。暗夜精灵用尽全力才击退了燃烧军团,可他们那神奇的大陆却突然破裂并沉没在海水之中。从那以后,暗夜精灵为了不再引来可怕的燃烧军团只能不再使用魔法。他们彻底与世隔绝。作为一个种族,暗夜精灵是尊贵与公正的典范,但他们非常不信任其他看起来弱小的种族。由于他们生来具有隐身的能力并使用神秘的魔法,其它种族也同样不信任他们。
暗夜精灵英雄:
 丛林守护者[Keeper of the Grove]
简介:这些半精灵半雄鹿的强大的守护者是半神塞纳留斯的后代。守护者们可以从自然和动物那里获得力量。虽然守护者们通常都隐居在神圣的月亮森林中,但当世界面临危机时,他们就会挺身而出。
评价:战场支援型英雄单位。丛林守护者在1.10版中被改为了远程攻击单位,拥有纠缠根须(使一个敌方单位定身并对他造成伤害)、自然之力(将树木变成树人作战)、荆棘光环(使周围的友军部队带有倒刺,伤害对他们进行近身攻击的敌人)和宁静(终极法术,治愈大范围内的友军部队)。纠缠根须可以让敌人无法移动,但对英雄无效,实用性比1.03大打折扣,但仍然可以用来追剿敌人的残兵。自然之力是丛林守护者最实用的技能,升到3级之后可以在很短的时间内组织一支树人大队,有效地吸引敌人的火力。荆棘光环在对付大量近战兵种时效果不错,但对暗夜精灵没什么用——全都是远程作战单位。宁静在大战之后用来群体恢复实在是超值,但由于需要丛林守护者不断施放以取得最佳效果,所以无法在恶战正酣的时候使用。

 
月之女祭司[Priestess of the Moon]
简介:作为侦查部队的领袖,无所畏惧的月之女祭司体现了暗夜精灵古老的月亮女神艾拉尼的力量与优雅。她们穿着闪耀着银光的铠甲,骑着凶猛的白虎参加战斗。为了保护她们的家园,手持魔弓的女祭司不会对任何侵略暗夜精灵领地的邪恶力量退让。
评价:魔法型英雄单位。月之女祭司是远程攻击单位,拥有影遁(被动技能,在夜间隐形)、侦察(类似于《星际争霸》中人类的雷达站)、灼热之箭(自动施放,每次攻击都带有额外的火属性伤害)、强击光环(提高附近友军远程攻击力)和星辰坠落(终极法术,天降群星对大范围内的敌人造成严重伤害),其中影遁能力是暗夜精灵女性单位特有的能力,可以在夜间不移动、不攻击的情况下隐身,而灼热之箭要不断消耗法力以对敌人造成额外的火属性伤害,这使得月之女祭司必须在灼热之箭和星辰坠落这两种十分消耗法力值的法术中挑一个,若是想全面发展的话必定顾此失彼。
  
 恶魔猎手[Demon Hunter]
简介:恶魔猎手是被暗夜精灵社会排斥的黑暗战士。他们在很久以前就和黑暗的力量立下契约,要用自己可怕的力量与混乱的力量对抗到底。他们弄瞎了自己的双眼,从而获得了可以迅速发现恶魔的能力。他们手持魔力强大的武器,并以此猎杀恶魔。虽然恶魔猎手可以算得上是暗夜精灵中最强大的战士,但他们无私的牺牲却不被自己的同胞理解。
评价:速度型英雄单位。恶魔猎手是类似于黑暗圣堂的悲剧式英雄,所以他们的技能很有牺牲精神:法力燃烧(让敌人损失法力)、献祭(恶魔猎手浑身冒火,对周围的敌人造成伤害)、闪避(被动技能,有一定几率避开敌人的攻击)和蜕变(终极技能,变身为恶魔),其中法力燃烧是对付敌人英雄和魔法单位、掌握战斗主动权的必备技能,可以迅速抽干敌人的法力,让他无法施放强大的法术。献祭杀伤力不是很大,而且要不断消耗法力值,感觉上不太实用。闪避的作用较大,可以有效保护恶魔猎手的生命安全,而蜕变则显得比较垃圾,生命值+300,每秒恢复5点生命值,作为终极技能来讲威力太小了一些。而且由于暗夜精灵的部队多为远程作战兵种,恶魔猎手属于近战部队,显然会首先成为敌人的攻击目标,太危险了。

 
暗夜精灵单位
小精灵[Wisp] 小精灵为暗夜精灵采集金矿和木材,同时负责建造各种建筑物。如果建造的是古树,小精灵会消失,但建造其它建筑物之后,小精灵仍然存在。
更新[Renew]:[自动施放法术]使小精灵可以维修友军的暗夜精灵建筑物和机械单位。
爆炸[Detonate]:摧毁小精灵以驱散附近所有单位身上附加的魔法效果,同时吸取他们的魔法值,并对召唤单位造成伤害。
弓箭手[Archer] 弓箭手是远程攻击兵种,可以攻击地面和空中的目标,
她可以从以下能力中受益:
隐藏[HIDE]:强制弓箭手保持静止状态,当她处于隐藏状态时不会自动攻击敌人。
硬弓[Improved Bows]:研究这项能力可以永久提高弓箭手的射程。
射击术[Marksmanship]:研究这项能力可以永久提高弓箭手的攻击力。
骑乘角鹰兽[Mount Hippogryph]:在风之古树研究这项技能,可以让弓箭手骑乘在角鹰兽身上,变成角鹰兽骑士。
女猎手[Huntress] 这种移动迅速的单位拥有远程攻击能力,可以攻击地面单位。
她可以从以下能力中受益:
隐藏[HIDE]:强制女猎手保持静止状态,当她处于隐藏状态时不会自动攻击敌人。
哨兵[Sentinel]:让一只猫头鹰栖息在一棵树上,永久提供这片区域的视野,并可以探测隐形单位。如果猫头鹰栖息的树木被砍倒,猫头鹰就会消失。这项技能每位女猎手只能使用一次。
升级月刃[Upgrade Moon Glaive]:使女猎手的攻击在多个敌人之间弹射,每次反弹攻击力都会有所降低。月刃只能攻击地面单位。
驽车[Ballista] 这种机械攻城单位可以攻击地面单位和建筑物,也可以摧毁树木。和其它攻城单位一样,它有最小射程的限制。
它可以从以下升级中受益:
穿刺之箭[Impaling Bolt]:使驽车发射的弩箭可以穿刺目标并对其身后的敌人造成伤害。
树妖[Dryad] 树妖拥有远程攻击能力,可以对付地面和空中的敌人。她拥有驱魔能力并可以学习慢性毒药和魔法免疫技能。
驱魔[Abolish Magic]:[自动施放法术]驱散单一敌方单位身上附加的有利魔法或单一友军单位身上附加的不利魔法,同时也能对召唤单位造成伤害。
慢性毒药[Slow Poison]:[被动技能]树妖的这项能力不需要进行研究。当受到树妖的攻击时,所有单位都会中毒并被减速,即使是对魔法免疫的单位也不例外。这种魔法效果无法被驱散。
魔法免疫[Magic Immunity]:[被动技能]使树妖对所有不利魔法免疫。
利爪德鲁伊[Druid of the Claw] 这种德鲁伊是近战单位,可以攻击地面部队。他拥有咆哮技能,并可以学习生命恢复和变熊技能。
咆哮[Roar]:提高附近所有友军单位的攻击力。
生命恢复[Rejuvenation]:为一个友军单位恢复生命值。
变熊[Bear Form]:使德鲁伊可以在熊和精灵两种形态间转变,他只能在精灵形态下变身为熊,变身之后他拥有近战攻击能力,并且有更高的攻击力和生命值。
猛禽德鲁伊[Druid of the Talon] 这种德鲁伊拥有远程攻击能力,可以攻击地面和空中的敌人。他拥有精灵之火法术,并可以学习风暴之鸦和飓风法术。
精灵之火[Faerie Fire]:[自动施放法术]降低单一敌军单位的护甲并使他无法隐形。
飓风[Cyclone]:召唤飓风使一个敌方单位眩晕。
风暴之鸦[Storm Crow Form]:使德鲁伊可以在乌鸦和精灵两种形态间转变,他只能在精灵形态下变身为乌鸦,变身之后的德鲁伊只能对空作战。
角鹰兽[Hippogryph] 这种空军单位只能攻击其他空军。在风之古树研究驯服角鹰兽能力之后,角鹰兽可以搭载一个弓箭手成为角鹰兽骑士。
它可以从以下升级中受益:
搭载弓箭手[Pick up Archer]:在风之古树研究驯服角鹰兽能力之后,角鹰兽可以搭载一个弓箭手成为角鹰兽骑士。
角鹰兽骑士[Hippogryph Rider] 弓箭手骑上角鹰兽就变成了空军单位角鹰兽骑士。角鹰兽骑士拥有远程攻击能力,可以攻击地面和空中的目标。
奇美拉[Chimaera] 这种空军单位可以用它的远程攻击能力对付空中和地面的敌人。
它可以学习以下技能:
腐蚀喷吐[Corrosive Breath]:[被动技能]奇美拉在攻击建筑物时会向它喷出一团酸液。
树人[Treant] 树人是丛林守护者使用自然之力魔法召唤出来的单位。这种法术会摧毁一些树木,将它们变成树人。树人可以攻击地面单位,它不会随着自然之力法术的增强的变得更加强大,但高等级的自然之力法术召唤的树人更多。在被召唤出来一段时间之后树人就会消失。
 
暗夜精灵建筑物
生命之树[Tree of Life] 生命之树是暗夜精灵的城镇大厅,可以制造小精灵。小精灵并不需要将采集到的金矿和木材运回这里,但生命之树必须扎根才能采集金矿。
远古之树[Tree of Ages] 生命之树可以升级为远古之树,从而使它更加难以摧毁,并使暗夜精灵可以进行更高级的升级和建造。
永恒之树[Tree of Eternity] 永恒之树是暗夜精灵最高级的城镇大厅和最强大的古树,升级到永恒之树使它更难以摧毁,并且使暗夜精灵可以进行最高级的升级和建造。
月亮井[Moon Well] 月亮井为暗夜精灵提供食物,也可以为友军单位恢复生命值和魔法值。月亮井储存的魔法力量在夜间会自动恢复。
战争古树[Ancient of War] 在战争古树中可以训练弓箭手、女猎手和弩车,并可以进行哨兵、硬弓、射击术、月刃和穿刺之箭的升级。
猎手大厅[Hunter’s Hall] 暗夜精灵单位的攻击和防御能力在这里升级。弓箭手、女猎手、弩车、角鹰兽、角鹰兽骑士、利爪/猛禽德鲁伊和奇美拉的攻击力,以及这些单位的防御能力(除了弩车)都在这里升级,同时也可以在这里研究暗夜精灵的夜视能力。
远古保护者[Ancient Protector] 远古保护者是暗夜精灵的防御性建筑。它可以使用远程武器攻击地面和空中的目标。
知识古树[Ancient of Lore] 在知识古树中可以训练树妖和利爪德鲁伊,并可以进行树妖的魔法免疫以及利爪德鲁伊的生命恢复和变熊技能的研究。
风之古树[Ancient of Wind] 在风之古树中可以训练角鹰兽和猛禽德鲁伊,并可以研究猛禽德鲁伊的风暴之鸦和飓风法术,以及驯服角鹰兽。
奇美拉栖木[Chimaera Roost] 奇美拉栖木是训练奇美拉的场所,在这里也可以进行奇美拉的腐蚀喷吐的研究。
长者祭坛[Altar of Elders] 暗夜精灵的英雄可以在这里雇佣或复活。
posted @ 2008-03-16 18:55 tyut 阅读(3691) | 评论 (2)编辑
  2008年3月12日
当一个属性字段需要验证三个规则时,例如password字段需要验证required,minlength,maxlength三个规则,
required需要一个参数,可以设置在资源文件中,如<arg0 key="jsp.password" resource="true">
而minlength和maxlength各需要两个参数<arg0/> 和<arg1/>。

以下为password字段的整个验证代码:
<arg0 key="jsp.password" resource="true">
<arg1 name="minlength"  key="${var:minlength}" resource="false" />
    <var>
        <var-name>minlength</var-name>
        <var-value>6</var-value>
    </var>

<arg1  name="maxlength"  key="${var:maxlength}" resource="false" />
    <var>
        <var-name>maxlength</var-name>
        <var-value>16</var-value>
    </var>


用红色字体表明的name属性可以区分是使用哪个参数的变量值。测试通过!
posted @ 2008-03-12 17:49 tyut 阅读(22) | 评论 (0)编辑

最近两天一直在搞mysql的中文显示问题,相当郁闷啊。

试验平台:struts1.2+myeclipse5.5+hibernate+mysql5.1

今天试验结果是 :

当mysql的默认字符集设置如下, (show variables;)

character_set_client            | utf8
 character_set_connection        | utf8
 character_set_database          | utf8
 character_set_filesystem        | binary
 character_set_results           | utf8
 character_set_server            | utf8
 character_set_system            | utf8
 character_sets_dir              | C:\mysql-5.1.6\share\charsets\

 

my.ini文件内容如下:

[mysqld]
basedir=C:/mysql-5.1.6
datadir=C:/mysql-5.1.6/data
default-character-set=utf8

[client]

port=3306

[mysql]

default-character-set=utf8

[WinMYSQLadmin]
Server=C:/mysql-5.1.6/bin/mysqld-nt.exe

 

或者 

my.ini文件内容设置成:

[mysqld]
basedir=C:/mysql-5.1.6
datadir=C:/mysql-5.1.6/data
default-character-set=gbk

[client]

port=3306

[mysql]

default-character-set=gbk

[WinMYSQLadmin]
Server=C:/mysql-5.1.6/bin/mysqld-nt.exe

 

hibernate的url配置如下:

<property name="connection.url">
   jdbc:mysql://localhost:3306/test
</property>

 

表单请求为get或者post时,在后台均能打印出正常的中文,

然后jsp页面字符集设置为gbk,mysql中插入的中文显示正常,jsp页面也能正常显示出插入的中文。

问题终于解决!

 

注:在struts中实现了RequestProcessor接口

posted @ 2008-03-12 12:23 tyut 阅读(73) | 评论 (1)编辑