声明:此修改针对的是 ofbiz10.04 版本,如果因为版本不同导致修改后没有效果,本博客不负法律责任!
1、进入ofbiz项目,按组合键 Ctrl + Shift + R,快速查找 ControlServlet.java 文件
2、按 组合键 Ctrl + L,快速定位到 152 行,增加如下代码:
if (request.getAttribute("targetRequestUri") == null) { if (request.getSession().getAttribute("_PREVIOUS_REQUEST_") != null) { contextPath = "/myportal"; //当前设置默认登录模块为myportal,即 “我的门户”模块,如果想默认进入别的模块,改此处即可! } }
3、当然,登录者需要有默认模块的访问权限方可登录,否则将报错:“发生了下面的错误:无法登录这个应用程序”!
只需以上三步即可实现 登录时默认进入一个指定的模块 之功能!
怎么,不太懂新增代码的含义,在下公务在身,不便久留,推荐一个博客供参考:
http://dagmom.iteye.com/blog/1625642
=================================================================================================
(#)还有一种情况是:当在地址栏中输入url: https://localhost:8443 让系统自动跳转到某一个指定的功能模块,如何实现?
在下经过了对ofbiz源码的深入剖析,发现还是有解决方案的!
现公布如下:
我们还是以 myportal 模块为例,找到加载 myportal 模块的XML: ofbiz-component.xml ,进入这个xml找到这句:
<webapp name="myportal" title="MyPortal" app-bar-display="true" base-permission="MYPORTALBASE" server="default-server" location="webapp/myportal" mount-point="/myportal"/>
该句的主要是作用是为了加载当前模块!name:模块名;base-permission:是否有进入当前模块的权限;location:模块路径;mount-point:我理解的作用是,类似于<servlet-mapping>标签里的<url-pattern>,即页面请求url。
要完成上面(#)的情况,只需要在 ofbiz-component.xml 文件中追加一句:
<webapp name="myportal" title="MyPortal" app-bar-display="true" base-permission="MYPORTALBASE" server="default-server" location="webapp/myportal" mount-point="/"/>
注意 和上面代码 只有属性:mount-point 值的区别,这样一来,我们在地址栏输入 https://localhost:8443 默认的会跳转到 myportal 模块 中,目的明确了!
本文系作者原创,如需转载,请附上原文链接:http://www.cnblogs.com/Ivan-j2ee/archive/2012/08/13/2636603.html