`
sslaowan
  • 浏览: 374052 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于RCP与Web交互的一些设计思路

阅读更多

      使用的Web框架是Spring MVC,并利用其CoC基础设施,实现了一个MultiActionController,名为RichEditorController,然后可以直接设计URI,这些URI将成为利用SWT Browser组件和在Spring MVC中做表述性状态转移的的API。其实我应该好好的写一个设计文档,但是我又不是很喜欢郑重其事的拿个Word来做这件事,因此就随手在这里边想边写,这也算是对URI驱动设计的一种尝试。不过我并没有使用Spring3对于REST的支持,即/blog/{id}/edit这样的URI,从我的文章对比REST之前和REST之后的URI映射可以看出,我对于REST是否一定要这种模式的URI持怀疑态度。

      显示新增页面 richeditor/new

      保存  richeditor/save。对于是新增还是修改,需要借助Form中的一个隐藏域,<input type='hidden' id='id'  value='<%=id%>'/>,将id置于表述之中而不是URI中,传给Web服务器,这样做是因为表述包含了我要传递的数据,将相当于RPC(远程过程调用)中的数据对象,然后借用Hibernate中saveOrUpdate的思想,如果该id==null则意味着新增,否则意味着修改。

      显示阅读页面richeditor/diplay?id=123

      显示修改页面richeditor/edit?id=123

      由于引入了FCKEditor,因此我将url-pattern设为"/",就无法显示FCKEditor了,原因应该是FCKEditor内部调用html,js之类的都不能正常映射。因此我还是加了.htm后缀。

 

      由于REST在现代Web中的应用是通过URI传达语义,通过HTTP操纵和转移表述来控制资源的,而在控制器接口中,表述是可选的,那么统一接口就应该如下所示:

      public [响应的控制数据] 连接器接口 (请求的控制数据 data,资源标识符 uri)

 

       实际上,我基本上就是依靠URI来作为接口的参数了。

       在RCP里嵌套浏览器的话需要用SWT Browser组件,简单的方法就是创建Browser对象,然后setURL。返回HTML,接下来用户就使用HTML页面选择链接进行状态转移了。其中id就是表单的代理主键~~~

 

     OK了~~

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics