为了给公司说明清楚,做了个网站框架进行说明。之前由于labview在web上支持较少,因此想要移植到web上。
第一大难题,排版,新建html。对我这种不懂审美的人来说简直太难了。利用html5+ccs的样式进行布局,虽然myeclipse中也支持拖放自动生成html脚本,但是这样并不好,有时候不小心会生成很多无用的空白和行符,还是自己排版较好。布局复杂了就发现,用ccs开头嵌入样式比行内样式好维护的多。另外,测试布局最好用浏览器直接测试,myeclipse中的视图似乎不太对劲。
终于明白静态网页与动态网页的区别了。当前页面如果只是一些介绍性的文字和一堆超链接,与数据库和表单等后台无关的,就应该只是个普通的html界面。而当需要提交表单后台处理时就必须新建jsp文件了,比如嵌入的matlab练习系统。幸运的是,html原来的布局代码也能直接复制到jsp文件中,效果是兼容的。现在想起来,如果只有html代码,那么也可以不用新建jsp文件吧,html+servlet就可以呀。
业务逻辑用的servlet,在这里业务逻辑就是调用matlab程序。之前已经有篇文章介绍过matlab打包jar的过程,不在详述。但注意到,我上次是无参数的matlab程序,这次调用的是有输入参数的,这就涉及到m文件的写法问题。
在matlab运行正常的m文件,生成jar后调用运行报致命错误。后来在网上对比了其他网友的程序发现,如果调用的程序需要输入参数的,原本的m文件不能再有input语句。也就是说,在matlab测试完m文件后,应该吧m文件中的input语句去掉。因为现在不需要在matlab控制台输入参数,现在是来自java的参数。
解决了致命错误后,还有其它编译错误,你会发现对于数据类型的纠错及其严格。在matlab中很多数据类型都是默认double型,因此在调用时视情况最好是在参数前强制转化成double。另外,还有一些uint32等数据类型的问题,根据报错信息直接改m文件。
总之,来来回回无数次后,重新生成jar,再导入刷新,最后才调用并画图成功。接下来又一麻烦事,怎么把图嵌进网页?我不会webfigure,自然想把图片存在路径中用img标签显示。后来发现,必须手动刷新工程才会显示新调用的图片。
这tm有点恶心了,想来想去只能在myeclipse中设置自动刷新工作空间了,可以设置,但还是会有一个时间段(比如10秒)。因此,趁着调用成功并重定向回原来页面时可以设置秒数等一等,如果还不行,手动刷新,基本可以看到变化。这是一种折中的办法。
对了关于路径的问题(比如img的,video的),可参考该链接:http://bbs.csdn.net/topics/390904440。解决了我之前困惑已久的问题。