1

我有两个基地:

Model A.ntf
Model B.ntf which inherited of A
Base B1.nsf from B

我在 A 和 B 中有一个 faces-config,但我想更改 B 的 faces-config。我不能这样做,因为当我更改它并更新设计时, faces-config 变成了最初的样子。 ..

所以,我想通过这种方式使用资源中的一个文件来包含一个faces-config。

但是这样做的代码是什么?

一个主意 ?或其他人认为怎么做?

谢谢

4

3 回答 3

1

我一直在考虑这个,我确实知道如何破解它。当然,我首先会研究@stwissel 描述的选项。faces-config.xml 文件所做的只是让运行时可以使用 java 实例。您可以在 java 和 javascript 中手动执行此操作。

javascript

function MyBean{
    this.getInstance = function(){
          return de.company.project.MyBean.getInstance();
    }
    return this;
}

爪哇

public static getInstance(){
     Map<String, Object> scopeMap = ExtLibUtil.getSessionScope();
        if(!scopeMap.containsKey(BEAN_NAME)){
            scopeMap.put(BEAN_NAME, new MyBean();)
        }
        return scopeMap.get(Bean_Name);
}

然后,您可以根据需要访问所有 bean,并且 ssjs 文件包含不允许设计刷新的可能性。

您也可以随时将此 ssjs 文件导入其他人

import ssjs_MyBean;

再次,hacky,但有时没有什么比一个好的 hack 更好的了!还请记住,这不会允许 EL(我不认为)它严格获取一个类的实例。

于 2014-07-18T11:46:21.263 回答
0

当你继承整个数据库时,你不能轻易地改变设计元素。暴露的那些(在菜单中)有“不允许设计更新”标志,但是AFAIK这个标志没有暴露给faces-config。你可以做什么:不要从 A 整体继承 B,而只是复制你需要的设计元素,然后说 YES 继承。

如果您有很多东西,您可能会考虑将设计元素移动到扩展库中,这样您的任何应用程序都可以从中受益。

您还可以使用特定的构建过程来复制元素。还有一个构建服务器正在制作中。

于 2014-07-18T10:12:45.997 回答
-1

事实上,我在第一个 faces-config 中添加了所有托管 bean。没关系。简单的 !我的所有基础都继承了它,并且如果不调用类未创建的基础或模型,则没有问题!谢谢大家!

于 2014-07-21T12:48:36.887 回答