|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2005-12-22
最近我在做一个web项目.我将产品分成了多个 相对可定制的组件 这些组件都是可独立运行 单独测试的.
组件开发异常顺利 甚至可以任意的定制. 但在组合产品的时候遇到了巨大的麻烦. 所有组件都有自己的url 链接. 为了便于独立测试 它们的url都是随意的 只考虑在组件内是可用的 不重复的.没有在设计前 为各组件的url做统一的设计. 现在为了组合他们 不得不修改组件的url. url遍布配置文件 控制流 view中 工作量很大. 最麻烦的是组件并非都是单页连续的 多是view中的一个窗口. 经常要在一页中 用xsl css定位拼装多个组件的view. 这样匹配他们各自的url变得异常复杂 ! 最让人头痛的是修改url后 破坏了组件的独立性 组件无法单独测试运行 未来的定制更是无从谈起了. 可能要再组装. 是否有办法统一管理系统内的所有url ? 从而实现组件的"热插拔" "热定制". 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2005-12-22
Portlet的情形就是这样吧。
URL in Portlet template should not be hard coded, instead it should be generated by some Portal Function. Like <%=portalServer.generateUrl(portletId, parameterData);%> |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-22
醒来老大推荐的behaviour挺好用的:
http://bennolan.com/behaviour/ 以样式表的匹配方式应用行为。 要做的大概是找到那些组件中的url和正常页面url的区别特征,用js进行修正。 需要注意的是: 1. 非body onload情况下 生成的组件url 2. 避免重复修正 |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-22
buaawhl 写道 Portlet的情形就是这样吧。
URL in Portlet template should not be hard coded, instead it should be generated by some Portal Function. Like <%=portalServer.generateUrl(portletId, parameterData);%> 好象是这样的. portlet也许能解决问题. |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-22
liusong1111 写道 醒来老大推荐的behaviour挺好用的:
http//bennolan.com/behaviour/ 以样式表的匹配方式应用行为。 要做的大概是找到那些组件中的url和正常页面url的区别特征,用js进行修正。 需要注意的是: 1. 非body onload情况下 生成的组件url 2. 避免重复修正 我的组件只有一部分用到ajax 用js修正难度好像也大了点 我再想想. 谢谢 ! |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-22
winterwolf 写道 liusong1111 写道 醒来老大推荐的behaviour挺好用的:
http://bennolan.com/behaviour/ 以样式表的匹配方式应用行为。 要做的大概是找到那些组件中的url和正常页面url的区别特征,用js进行修正。 需要注意的是: 1. 非body onload情况下 生成的组件url 2. 避免重复修正 我的组件只有一部分用到ajax 用js修正难度好像也大了点 我再想想. 谢谢 ! 写一个Aspect或者Filter,怎么叫都可以 然后对生成的HTML字符串中的class="UrlClass"进行匹配替换 |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-26
copenhagen 写道 写一个Aspect或者Filter,怎么叫都可以 然后对生成的HTML字符串中的class="UrlClass"进行匹配替换 哈哈 我尝试了无数的办法(Portlet还没试过 需要学习) 包括用js实现url自动拼装配. (根据request parameter自动导航 系统中所有链接都是一个. 只是?后面的东西不一样) 结果发现不但不能简化问题 反而使问题更复杂 ! 换个人都无法维护 时间长了自己也无法维护. 现在我开始老老实实的用手工改url. 比如一个view由3个子view构成 他的url就这样匹配 *-*-* 这样3个view的信息被合并为一个. css来定位每个view. 每个子view的url就这样匹配 *.*.* 比如 lib.shop.buycart 点来指定组件的位置. |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-30
winterwolf 写道 最近我在做一个web项目.我将产品分成了多个 相对可定制的组件 这些组件都是可独立运行 单独测试的.
组件开发异常顺利 甚至可以任意的定制. 但在组合产品的时候遇到了巨大的麻烦. 所有组件都有自己的url 链接. 为了便于独立测试 它们的url都是随意的 只考虑在组件内是可用的 不重复的.没有在设计前 为各组件的url做统一的设计. 现在为了组合他们 不得不修改组件的url. url遍布配置文件 控制流 view中 工作量很大. 最麻烦的是组件并非都是单页连续的 多是view中的一个窗口. 经常要在一页中 用xsl css定位拼装多个组件的view. 这样匹配他们各自的url变得异常复杂 ! 最让人头痛的是修改url后 破坏了组件的独立性 组件无法单独测试运行 未来的定制更是无从谈起了. 可能要再组装. 是否有办法统一管理系统内的所有url ? 从而实现组件的"热插拔" "热定制". 我自己实现了一个叫componet组件,可以被war工程引用。它的其中一个作用就是把war中的url注册到componet.xml里,并在war启动的时候自动进行注册,并可以在同一个ear里面通过componentService调出这些url。这样即可实现war工程的热插拔。 |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-30
那么view(比如jsp html)中的url链接也可以修改么 ?
我的url比较复杂 完全自动修改太难了. 不过你的回复给我一点启发 我可以做一个工具 提高手工修改的速度.先从半自动化开始. 虽然热插拔 热定制实现不了 但至少是 可插拔 可定制 哈哈 |
|
| 返回顶楼 | |
|
最后更新时间:2005-12-30
winterwolf 写道 那么view(比如jsp html)中的url链接也可以修改么 ?
我的url比较复杂 完全自动修改太难了. 不过你的回复给我一点启发 我可以做一个工具 提高手工修改的速度.先从半自动化开始. 虽然热插拔 热定制实现不了 但至少是 可插拔 可定制 哈哈 不好意思,前面我说得不是太清楚。 其实我的component原理是这样的:它认为任何war、jar这些工程都是应用的一个组件,组件是为应用提供服务的。这些服务可以用jsp、java class/method、web service、ejb等等任何方式来实现。 因此,在我的应用里,所有对这些服务调用都是通过componentService和对应的标记库来实现的,因此也不存在所谓的改url的问题。我还提供了一个Menu工程来对这些component进行动态菜单管理,可以把当前活跃的所有component里UI类型的service配置成菜单和绑定权限。 此外,这些war工程本身都可以脱离其它war工程独立运行和测试。 |
|
| 返回顶楼 | |










