zwleisa

BlogJava 首页 新随笔 联系 聚合 管理
  18 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

2007年7月23日 #

                                               有效网页表单的八条规则
原文地址:http://www.20ju.com/content/V93605.htm

        如果你正从你的用户那里收集信息, 没有比网页表单更简单和直接的办法了。一份有良好设计的表单可以提供有价值的信息, 相反, 他们有可能把用户吓跑。明确了这一点之后, 每个设计师就应该知道一些设计网页表单的规则。

1. 保守性的搭建, 并带有目的性的设计表单
 
我们要面对的现实是没有人喜欢花大把的时间填写表单. 保持表单的短小精悍并且剔除绝对不必要的或者不会提供实际收效的表单元素. 保证表单的每个部分都对整体起到了推动作用, 这样用户会感谢你。


你的表单结构应该和表单内的元素一样具有功能性. 当设计表单样式的时候, 要记得, 至少在西方国家, 人们的阅读习惯是从上到下, 从左到右. 他们也经常用Tab键在表单各个元素之间移动. 你的设计应该通过元素摆放的合理性和标签的语义性来实现. 当然, 永远不要让你的表单看起来分散或杂乱无章——保证所有的元素都均匀的分隔开, 并且排列整齐。


下面是一些标准表单, 你可以用来作为出发点, 设计出更加有创造性的表单:


标签左对齐, 输入字段垂直罗列:

 

这个表单的特点是标签左对齐, 输入框整齐有序的从上到下排列. 我们的眼睛能够很容易的捕捉表单元素, 特别是当你问到一些用户不太熟悉的问题时。因为他们可以很顺利的从上到下阅读问题列表而不被输入框打断, 他们会更专注于你所问的问题. 但是这个样式会延长填完表单的时间, 因为视线在标签和输入框之间移动会占据大量的时间。


标签右对齐, 输入字段垂直堆叠:

 

右对齐的标签能够更容易区分和阅读, 并且剔除掉了标签和输入框之间那些不合适的空间. 但是, 却使阅读更加困难. 它不那么吸引人, 而且看起来不整齐。


标签顶端对齐:

顶端对齐的标签可以使填写表单更加迅速和容易, 因为眼睛不需要在标签和
输入框之间来回移动. 这种样式也让你把相关的字段放在一起, 节省了空间。
 
 


2. 让你的表单适应它的风格


每个表单都应该符合它要表达的形势或情况. 当你在计划着设计表单的时候, 问问自己下面的这些问题: 你打算问什么问题? 为什么问? 你的网页设计在有表单和没有表单的情况下分别是什么样子? 表单中有没有用户要填的信息, 或者有没有他们想要填的信息? 你的回答会对你的表单样式和内容的设计有所帮助。
 


3. 用你所需


当你犹豫不决是否在表单中添加元素的时候, 问问自己是不是可以不需要这个元素. 如果回答"是", 就不要使用。

重置按钮通常是不必要的表单元素. 这个本应消失的历史残留品却依然出现在表单中, 甚至是将来的表单设计. 想想看, 当你想要修改表单信息的时候,
输入框里面有什么内容其实并不重要, 那么有什么必要清除所有的信息呢? 重置按钮唯一好处是当你不小心清除了刚刚填好的信息, 很恼火的时候,
你不需要重新填写。
 

4. 在必要的时候才使用简洁的描述
你也许要解释一下在表单中收集相关信息的原因, 特别是用户不愿分享的信息,比如电话号码或者电子邮件. 这样做不仅消除了用户的疑虑, 也保证了数据的正确性。


任何描述和评论都要简明扼要. 你也许还要用不同的颜色, 字体大小, 或样式来区分他们. 过犹不及, 毕竟你不希望这些描述索然无味或者明显超过表单的其他部分. 这是一个提供印刷服务的表单, 很有效的利用了描述来说明表单的作用。
看下图:

 


5. 主动沟通
保证你的表单中使用以用户为中心的友好语言. 这里有个小窍门可以写出平常谈话般的文字: 避免和你的用户真正交谈。
如果你想知道别人的名字, 你不会盯着他们的眼睛用呆板的措辞问, "全名". 那实在是太恐怖了. 如果你要得到积极的回应, 你会笑着说, "你好, 你叫什么名字?" 记住试着用更加人性化的措辞来代替"全名"这个标签, 比如, "你的名字"。
 


6. 把表单分成划分成许多小的部分
在小范围内交换想法和意见是沟通的一种方式. 大家互相介绍自己. 你描述自己的职业, 其他人发表评论或者提问题. 你重复说过的内容, 或者回答他人的问题会收到更多的回应. 一次有意义的充实的交谈, 信息是源源不断的, 一来一回的。
 
网页表单作为另外一种沟通的方式, 也是同样的道理. 你也许要问许多问题, 但是那并不意味着你要把他们一股脑的给读者. 试着用水平线, 色块, 有意义的图片, 或者用标题字把信息分割成为容易阅读的小集合. 如果, 以上的办法都行不通, 就把你的表单分成许多页, 在顶部加上进度条, 如此一来, 用户就能够知道他们还差多少没有完成。如下图:
 

 
 


7. 使用有意义的, 关联上下文的错误信息
你的出错信息应该可以清楚的表明哪里出错, 并使出错的部分突出出来. 毕竟, 没有人喜欢在表单里面搜索被遗漏的字段。
 


8. 当用户点击提交按钮时, 他们会自以为已经完成了, 打算离开. 基本上他们会说, "这是你要的信息, 再见."


如果是一次真正的交谈, 你会和他们握手, 然后说, "再见", 再离开, 或者通过其他方式告诉他们谈话结束了. 你的表单也会做同样的事情.
它有没有引导用户到达某个页面, 告诉他们, "感谢你的提交! 我们不久之后会联系你.",
或诸如此类的提示. 而且此时的网页上应该有返回主页的链接。


就这些了! 在设计网页表单的时候要记得这些规则, 你一定会惊讶于表单的质量的大幅提升以及收获的大量反馈。

posted @ 2009-06-01 14:58 神仙叹 阅读(203) | 评论 (0)编辑 收藏

在tomcat5下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),
没有妥善处理好的原因。
具体的原因就是
在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpServletResponseresponse)的最后
有一段这样的代码
finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
    }
这里是在释放在jsp中使用的对象,会调用response.getWriter(),因为这个方法是和
response.getOutputStream()相冲突的!所以会出现以上这个异常。

然后当然是要提出解决的办法,其实挺简单的(并不是和某些朋友说的那样--
将jsp内的所有空格和回车符号所有都删除掉),

在使用完输出流以后调用以下两行代码即可:
out.clear();
out = pageContext.pushBody();

posted @ 2008-06-18 18:55 神仙叹 阅读(1904) | 评论 (2)编辑 收藏

使用MS SQL Server 2005 SP3做数据库服务器时,用Microsoft提供的JDBC驱动,在查询时遇到一个SQLException:ResultSet can not re-read row data for column #.

查询语句和JDBC代码都没有问题,所以怀疑是Microsoft驱动的BUG,google一下果然在Microsoft support站点发现了问题:http://support.microsoft.com/kb/824106

原因是如果该表存在TEXT, NTEXT, IMAGE等大型字段,对于ResultSet的字段读取必须按照从左向右读,如果你用:

int a = rs.getInt(2);
int b = rs.getInt(1);

则报错。Microsoft给出的方案是不能从右往左也不能连续读2次。没办法自己改代码,严格从左向右读,结果就没有问题了。
posted @ 2008-05-31 19:47 神仙叹 阅读(201) | 评论 (0)编辑 收藏

     摘要: 今天接到个电话,说某省的一个非归档数据库中,为某个表空间添加数据文件时误操作,加成了文件系统(数据库是使用裸设备做数据文件的),当时处理的方式是直接在os级rm掉了这个数据文件。结果在oem里面点击表空间的时候就报数据文件找不到了。然后,另一个同事将该数据文件执行offline drop后,在oem里面点击表空间不报错了。 但是这是否就正常了呢? 我们说,表空间就像一个容器,像一个空的...  阅读全文
posted @ 2008-02-15 15:07 神仙叹 阅读(1728) | 评论 (2)编辑 收藏

  1. Request[/B201] does not contain handler parameter named 'action'.  This may be caused by whitespace in the label text

      解决:在jsp页面的表单中,加入<input type="hidden" name="method">

posted @ 2007-09-05 19:07 神仙叹 阅读(735) | 评论 (3)编辑 收藏

     摘要:   阅读全文
posted @ 2007-08-23 15:15 神仙叹 阅读(461) | 评论 (0)编辑 收藏

删除项目lib下的jsp-api.jar和servelet-api.jar即可
posted @ 2007-07-27 10:07 神仙叹 阅读(2346) | 评论 (1)编辑 收藏

1.现象:[hibernate][ERROR] - Could not synchronize database state with session
解决方法:加入nls_charset12.jar,classes12.jar

2.ORA-12541:TNS:没有监听器

  原因:没有启动监听器或者监听器损坏。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删除!)


3.ORA-12500:TNS:监听程序无法启动专用服务器进程

  或

  ORA-12560:TNS:协议适配器错误

  原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。

如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:

  1)ORADIM -DELETE -SID oradb 删除数据库服务项

  2)ORADIM -NEW -SID oradb 新增数据库服务项

  注:这个过程中如果出错,就重启计算机!

4、ORA-12154:TNS:能解析服务名

  原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。

5、ORA-1034 :TNS:ORACLE不可用

  原因:ORACLE的数据库服务正确启动,但是数据库没有打开!

  使用命令:

  1)svrmgrl 启动服务管理器

  2)connect internal 以internal身份登陆

  3)startup 打开数据库

6、ORA-12560:TNS:协议适配器错误(顽固性的)

  原因:未知。

  解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!

  PS:

  1、我的ora_startup.bat:

  net start OracleOraHome81TNSListener

  net start ORACLESERVICEORADB

  svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。

  2、我的ora_shutdown.bat:

  net stop OracleOraHome81TNSListener

  net stop ORACLESERVICEORADB

  3、ORACLE相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名。


7.ora-01747:无效的用户.表.列,表.列
原因:表的字段中有oracle的关键字
解决:设计表时避免使用关键字
posted @ 2007-07-24 15:09 神仙叹 阅读(246) | 评论 (0)编辑 收藏

现象 : 服务器上没有安装 iis, 同时已将配置文件中 Tomcat 访问端口改为 80 端口 , 已命令行形式启动 Tomcat , 客户端可以通过浏览器访问 , 测试成功 . 于是将 tomcat 注册为 windows 的服务 , 启动之 , 启动过程一切正常 , 打开浏览器 , 竟然无法访问 , : 无法找到服务器 . 以为是环境变量设置不正确 , 反复尝试后 , 仍然不行 . 但发现另外一个现象 : 在服务器上是可以访问系统的 , 同时王志华提醒可能是防火墙的问题 , 深以为然 . 打开操作系统的防火墙 , 发现 tomcat 已在例外中 , apche 没有 , 随增加之 . 重新打开浏览器 , 还是不行 . 继续在防火墙里寻找答案 , 打开高级选项卡 , 选择 本地连接 1” , 打开设置按钮 , web 服务器 (http) 打勾 , 重起服务 ,OK!

posted @ 2007-07-23 15:28 神仙叹 阅读(237) | 评论 (0)编辑 收藏

  1. Java_Home:指向jdk的安装目录,例:C:\Program Files\Java\jdk1.5.0
  2. 在Path增加一条:%JAVA_HOME%\bin,注意,如果安装过oracle9i,要将该条放在C:\Program Files\Oracle\jre\1.3.1\bin之前;
  3. 增加classpath项,内容为:%JAVA_HOME\lib;%
  4. 增加Catalina_Home项,内容为tomcat的安装目录,例:D:\Server\tomcat-5.1.5;
posted @ 2007-07-23 13:32 神仙叹 阅读(280) | 评论 (0)编辑 收藏