Tag: 自定义组件

正确使用Facelet模板和复合组件

我仍然不确定正确使用JSF模板和复合组件。 我需要创建一个企业Web应用程序,它将拥有大量页面。 每个页面都有相同的标题,菜单,页脚,当然还有不同的内容(= JSF模板)。 每个页面上的内容将包含可重复使用的“框”(= JSF复合组件)。 这些盒子包括一些文件,按钮等。我的解决方案是否合适? 或者我应该使用其他技术,如自定义组件,装饰……? layout.xhtml customer_overview.xhtml: … component_case_history.xhtml … CustomerOverviewController.java @ManagedBean @ViewScoped public class CustomerOverviewController { public List getCases() { … } } 编辑2012-04-27 基于: 何时使用,标记文件,复合组件和/或自定义组件? 我认为我应该使用Facelet模板+ Facelet标签文件而不是Facelet模板+复合组件。

在文件选择器中更改附件组件的位置

我在更改文件选择器中附件组件的位置时遇到问题。 我通过在文件选择器的附件组件中放置一个复选框来自定​​义保存文件对话框。 但是复选框的位置不好,真的很难看。 我可以将附件组件移动到文件窗格下面吗? 怎么做? 或者,如果您有其他解决方案来做同样的事情,也欢迎。 感谢你们。 我使用以下代码添加复选框: JFileChooser fc = new JFileChooser(file) JPanel accessory = new JPanel(); JCheckBox isOpenBox = new JCheckBox(“Open file after saving”); accessory.setLayout(new BorderLayout()); accessory.add(isOpenBox, BorderLayout.SOUTH); fc.setAccessory(accessory); 在此屏幕截图中,复选框的位置不佳。 这个截图是我想要的确切效果。

组件系列,组件类型和渲染器类型之间的关系是什么?

当我在JSF中学习自定义组件开发时,我对组件系列,组件类型和渲染器类型之间的关系感到困惑。 例如,我注册了一个渲染器和一个自定义组件,如下所示。 faces-config.xml : study.faces.Div javax.faces.component.UIPanel HTML_BASIC javax.faces.Panel study.faces.DivRenderer com.study.ui.DivRenderer 我还在my.taglib.xml文件中注册了一个新标记,如下所示: div study.faces.Div study.faces.DivRenderer 这种配置非常有效。 但是,我不明白为什么在渲染器注册时需要行javax.faces.Panel 。 在my.taglib.xml ,组件和渲染器已连接,恕我直言,它应该足以为组件选择合适的渲染器。 附加参数的用途是什么? 我做了谷歌研究,我得到的所有答案都说“一个渲染器可以用来渲染多个组件。这些组件属于一个系列”。 但这些陈述并没有清楚我的困惑。 有人可以解释组件类型,组件系列和渲染器选择策略之间的关系吗? (希望有一个很好的例子。)