我正在使用 eclipse 创建我的 jsf 项目。
我创建了自己的组件,我不希望其他程序员能够使用jsf常规组件,例如
h:inputtext
等
我如何在 Eclipse 中做到这一点,如果用户添加像
h:inputtext
这样的特定标签,他会在页面中以及尝试运行它时看到错误?
那不是 Java,那是 JavaServer Faces。
一般原则上,您不能让其他开发人员实现这一点。 如果需要的话,他们将会规避它。
您可以做的是强制执行一项策略,即使用您的组件而不是库存的 JSF 组件,然后在构建时验证这一点。 您的源存储库或构建服务器(首选)应该对此进行测试并使操作失败。 如果需要在本地调试,这也将允许开发人员使用标准 JSF,只要它不共享即可。
为了检查 JSF 页面,您可以利用它作为 XML 文档的优势,并使用 XSLT 来验证所有标签和属性。 我的方法是检查所有标签上的名称空间,如果在黑名单中发现则触发失败。
我想你可以编写一个 Eclipse WTP 验证插件来验证你的视图文件。我会检查
http://java.sun.com/jsf/html
命名空间是否存在。
禁止这些标签的一个简单方法是让它们在运行时爆炸。您可以通过将具体组件重新定义为在实例化时引发异常的组件来实现此目的。例如,要替换
commandButton
实现,您可以在 javax.faces.HtmlCommandButton
中定义
faces-config.xml
的组件类型。如果您正在编写自定义控件,您可能已经对此领域有了一定的了解。这将需要向应用程序添加一个库。