codecamp

3.8.Controller

BDF2中提供了一个类似于Spring MVC或Struts MVC的Controller(实际上Dorado7的Controller利用的就是SpringMVC实现的),但相比Spring MVC或StrutsMVC,BDF2中提供的Controller功能更为简单,可控度及灵活性也更高,之前我们提到的用于在系统第一次使用初始化系统菜单时访问的http://localhost:8080/bdf2-dynamic-web-project/generate.system.menu.action地址,其中的generate.system.menu.action就是利用BDF2中Controller功能提供。
要定义一个BDF2中的Controller,我们需要编写一个IController接口的实现类,这个接口源码如下:
IController接口源码
package com.bstek.bdf2.core.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 实现该接口,并将类注册到Spring就可以通过指定的URL访问执行其中的execute方法体
 * @author Jacky.gao
 * @since 2013-2-21
 */
public interface IController {
 String getUrl();
 void execute(HttpServletRequest request,HttpServletResponse response) throws IOException,
ServletException;
 boolean anonymousAccess();
 boolean isDisabled();
}
这个接口定义了四个方法,第一个getUrl方法就是用于定义这个Controller访问地址的,比如之前的generate.system.menu.action,它的getUrl方法返回值就是/generate.system.menu,可以看到URL定义时要以/开头,同时后面不能添加.action;第二个方法execute就是我们业务方法执行的地方;第三个方法anonymousAccess就是这个Controller是否允许用户在未登录的情况下访问,返回false,表示允许未登录访问,否则必须要登录才能访问这个Controller;最后一个就是是否禁用这个Controller,为false就可以正常访问,否则就不能访问。

值得注意的是,Controller定义好之后,访问的地址是getUrl方法返回的字符串+"."+"action",这里的.action是BDF2Controller访问的默认URL后缀,这个值由bdf2.controllerSuffix属性决定,这个属性值默认为action,所以我们访问Controller的地址为:getUrl方法返回的字符串+"."+"action",当然一般情况下,这个属性值是没必要修改的。

IController接口实现类编写完成之后,需要将其配置到Spring当中,变成一个标准的Spring(不要指定这个bean的ID),这样我们就可以像访问generate.system.menu.action这个Controller一样访问我们新定义的Controller了。

3.7.组件权限控制
3.9.单点登录相关
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }