Month: June 2010

wsimport出现命名冲突时的解决办法

有没有遇到过这种问题: "[ERROR] A class/interface with the same name "mypackage.SomeClass" is already in use. Use a class customization to resolve this conflict. " StackOverflow上有人给出了解决办法? "The solution is to run wsimport with the -B-XautoNameResolution (no spaces)" 注意比较新的JDK版本才支持 -B 参数。

简化GWT Widget的代码逻辑: 共享数据模型 + 刷新时读取全量数据

  1.你的页面上有三个Widget,三个Widget依赖同一套数据集,但这些Widget所需要的数据组织方式各不相同。 这种情况下,你应该声明一个 Data对象还是三个? 我的体会是只使用一个比较好。这样需在刷新Widget时临时转换数据格式,但这比起建三个对象、然后维护三个对象之间的一致性 要简单的多。   2.当某个Widget往数据集里增一条数据时,依赖这套数据集的其他Widget应该根据这条 新数据微调一下界面 还是 把整个数据集重新读取一次并整个地刷新?  我的经验是 刷新整个数据集比较好。这种作法的性能虽然不如前一种,但它比较简单: Widget的展现逻辑只有一种,即读取当前所有数据,它不用针对数据的增、删、改分别提供处理逻辑;另一方面,这种作法也是Widget之间的解耦更彻底。

GWT的Context Path问题

1. 在GWT的JAVA代码里取得Context Path    //若生成的JS所在目录为war/moduleName path = GWT.getModuleBaseURL().replace("/" + GWT.getModuleName(),""); //若生成的JS所在目录为war/gwt/moduleName path = GWT.getModuleBaseURL().replace("/gwt" + "/" + GWT.getModuleName(), ""); 2.在module xml里引用context path下的css文件时,用“..”来代表上级目录            <stylesheet src="../stylesheet/xxx.css" />

无法在GWT的dev mode下Debug的原因

用dev mode 以debug的方式启动程序,然后在 entry point处设断点,最后访问使用了这个module的页面,但Eclipse却不会在预期的地方断开,为什么? 一般来说这都是因为你的页面里所引用的js文件并没有指向dev mode编译出的文件所在的目录。 dev mode编译出的文件都放在 war/moduleName下,你的HTML里是不是把 moduleName.nocache.js 的路径写错了?

在GWT的DevMode中,产生的JS文件只能输出到 war/module 目录下

在GWT的DevMode下,产生的JS文件只能输出到 war/module 目录下。 我之所以研究这个问题,是因为我不想把GWT生成的JS目录直接放到war下,而是放到 "war/gwt" 下。 通过ANT的配置,可以在编译时把JS输出到 war/gwt下;但在dev mode中,没办法,因为源代码里已经把它写死了:     //源代码:DevMode.java File moduleOutDir = new File(options.getWarDir(), module.getName()); linkerStack.produceOutputDirectory(logger, artifacts, moduleOutDir); 这也太土了吧!

学到了一个新名词:MVP模式

MVP可以跟MVC对照起来看。和MVC一样,MVP的M就是 Model, V就是View,而P,则代表Presenter,它与Controller有点相似。 不同的是,在MVC中V会直接展现M,而在MVP中V会把所有的任务都委托给P。V和P会互相持有reference,因此可以互相调用。这也暗示着V肯定是一个富的客户端。 维基百科的介绍是: In this formulation, when a user triggers an event method of the view, it does nothing but invoke a method of the presenter which has no parameters and no return value. The presenter then retrieves data from the view through methods defined by the view interface. Finally, the presenter then …

学到了一个新名词:MVP模式 Read More »