最好是ext自己的,如果没有的话,大家能帮忙推荐一下吗?
[b]问题补充:[/b]
最好是能有个例子- -|
[b]问题补充:[/b]
qwikiOffice是个基于ExtJS+PHP开发的WebDesktop开源项目。我不需要WebDesktop的,我只需要一个权限认证的架构,比如SpringSecurity之类的(这个和Ext结合麻烦点,所以看看有没有其他好用的)。
[b]问题补充:[/b]
当然有权限了呀,要分角色、组什么的- -|
反正比较麻烦就是了
SpringSecurity要在每个页面配置的,但EXT是javascript,是到客户端去解析
比如页面上的一个按钮我不打算显示,只能是hiden掉,其实代码里还是有的
有没有可能压根就不生成这个按钮呢?
再有就是ext的页面js如果提出为*.js文件以后,里面是不能用标签的,郁闷
[b]问题补充:[/b]
是啊,也有个人提醒我可以把js写在jsp里,然后include jsp就可以了,可总感觉别扭?
[b]问题补充:[/b]
谁有struts2+ext+SpringSecurity的例子呀~
[b]问题补充:[/b]
只要是struts2+ext+SpringSecurity的例子就可以,不一定是要详细到按钮的
[b]问题补充:[/b]
现在是对ext+SpringSecurity有点理解问题
我告诉你,可以用标签的,呵呵,你把js当做jsp来写就是了,听说用模板引擎很不错,不过我没有试过。总之,你就用控制jsp的方法去控制js,然后让页面直接指向那个jsp就可以了。也就是说在jsp里面写的不是html代码,而是js代码。
例如:
[code="html"][/code]
但是你要记得前面去掉了按钮,后面的代码部分也一定要跟着处理一下。
你可以看看qwikiOffice,这个处理的还不错,我在这上面又扩展了一下,权限控制的细到了功能和request,但是也只能细到这种地步了。权限可以继承。
总之,思想还是和qwikioffice类似的。
另外,request控制权限就是写一个servlet过滤器判断权限,然后覆盖Ext.Ajax.handleResponse方法做些处理。
qwikioffice的例子就不好给了,request的例子倒是可以提供一下……
Ext.Ajax.handleResponse = function(response){
if (response.responseText == 'error:authority') {
location.replace("/emas/");
return;
}
this.transId = false;
var options = response.argument.options;
response.argument = options ? options.argument : null;
this.fireEvent("requestcomplete", this, response, options);
Ext.callback(options.success, options.scope, [response, options]);
Ext.callback(options.callback, options.scope, [options, true, response]);
};
至于后台就是一个filter了,权限不够直接写回'error:authority'就可以了。
而qwikioffice的处理方式,我提示一下:利用jsp或者其他技术自动生成js脚本。
以我的理解,你后台就算用Spring Security等等什么的,只要能控制权限,如果用户访问没有权限的部分,就写个字符串到response里面返回就是了,然后ext接到处理。我那里简单的返回了首页。
现在比较强的还就是Spring Security了,不用怀疑,呵呵。
例子没法给你,我也没有详细到一个按钮是否显示。但是我也用过用jsp生成js或者css让html页面包含。已经有非常大量的网站使用这种方法了,习惯就好,应该没什么别扭的。
html页面详细到一个按钮还是比较容易的,但是如果要让extjs详细到一个按钮是否显示,的确是比较麻烦的,我想的有两种方式,有利有弊。
第一种
var b = Ext.Button({....});
xxxPanel.add(b);
第二种
var xxxPanel = Ext.Panel({
例子没法给你,我也没有详细到一个按钮是否显示。但是我也用过用jsp生成js或者css让html页面包含。已经有非常大量的网站使用这种方法了,习惯就好,应该没什么别扭的。
html页面详细到一个按钮还是比较容易的,但是如果要让extjs详细到一个按钮是否显示,的确是比较麻烦的,我想的有两种方式,有利有弊。
第一种
[b]var b = Ext.Button({....});
xxxPanel.add(b);[/b]
第二种
var xxxPanel = Ext.Panel({
.
.
items : [
.
.
[b], {xtype : 'button'...}[/b]
.
.]
.
});