Tag: composite component

无法从复合组件中找到匹配的导航案例

我有一个复合组件按钮,操作来自一个属性。 当我创建按钮时,操作来自我的控制器。 然后我有一个导航规则,寻找myController.doSomething #{myController.doSomething} success /pages/test1.xhtml 问题是,当我点击按钮时,操作来自#{cc.attrs.action},因此我收到以下错误 Unable to find matching navigation case with from-view-id ‘/pages/test.xhtml’ for action ‘#{cc.attrs.action}’ with outcome ‘success’ 我怎么能绕过这个?

隐式对象cc和组件之间的jsf差异

也许这是一个愚蠢的问题,但我使用 cc 引用复合组件,例如cc.attrs.randomAttr,但我也看到了 component 隐含的对象,我已经使用它,因为我被告知,但我真的不明白它是什么。 谁能解释一下吗?

具有可定制内容的JSF迭代复合组件

我想创建一个复合组件,其中迭代元素的实际布局可以传递给复合。 这是一个简化的示例,有效: 但是我不希望h:outputText在组件中被硬编码。 使用组件时,我试图让这样的东西: 假设我必须使用var ,但我不知道如何在我的组件中处理它并正确访问子 。

通过postValidate进行JSF交叉字段validation,而无需在支持bean中按名称查找组件

我正在构建一个登录表单复合组件。 使用它的页面将传递一个将validation用户名和密码的事件处理程序。 通常(不使用复合组件)当我们通过postValidate执行交叉字段validation时,事件处理程序必须按名称查找字段的组件。 validation器最好不要这样做,因为这些是应该抽象的组件的内部细节。 知道如何在不了解复合组件的内部细节的情况下在postValidate处理程序中获取用户名和密码字段的转换值吗? 更新:这一点不是为了避免按名称查找组件,而是能够以不需要使用页面和/或bean来了解内部的方式跨域validation复合组件的字段组件的详细信息。

每个请求都会重新创建复合组件中的支持bean

我有两个变量“userId”和“name”。 当我点击例如“SHOW USERID”按钮时它工作正常并设置“renderUserId = true”并用“render”显示它,但是如果我点击另一个“SHOW”按钮,那么Bean重建并且我松了“renderUserId = true”,它变为“false”和“renderName = true”,因此它显示正常,但USERID被隐藏。 我的问题是,当我渲染xhtml时,如何避免丢失bean值? 这是我的代码的简单模拟。 注意:如果我在“h:commandButton”中使用“actionListener”而不是“f:setPropertyActionListener”,我会得到相同的结果,那么bean就是重构 example.xhtml ExampleBean.java import javax.faces.component.FacesComponent; import javax.faces.component.UINamingContainer; @FacesComponent(“com.bean.ExampleBean”) public class ExampleBean extends UINamingContainer { private Integer userId; private String name; private boolean renderUserId; private boolean renderName; }

JSF 2 – 如何向复合组件接口添加Ajax侦听器方法?

我有一个JSF 2复合组件,它采用了一些Ajax行为。 我想在复合组件中的标记中添加一个listener方法,但是listener方法应该在作为提供。 我的复合组件中的标签当前被硬编码为这样的监听器: bean上的listener方法有这个签名: public void genericAjaxEventLogger(AjaxBehaviorEvent event) throws AbortProcessingException { // implementation code… } 我希望复合组件是这样的,所以页面可以提供自己的事件方法,但我无法弄清楚接口的正确语法。 我怎样才能做到这一点? 更新解决方案: 我采用了BalusC建议的方法,效果很好。 相关的片段是: 复合组件中的接口声明 … 我的复合组件中使用的Ajax标记 我在页面中使用复合组件的位置 和我的支持bean上的方法 public void updatedEventListenerXYZ() { // do something here… }

如何以编程方式或动态创建JSF 2中的复合组件

我需要以编程方式在JSF 2中创建复合组件。经过几天的搜索和实验,我找到了这种方法(在java.net上受到Lexi的启发): /** * Method will attach composite component to provided component * @param viewPanel parent component of newly created composite component */ public void setComponentJ(UIComponent viewPanel) { FacesContext context = FacesContext.getCurrentInstance(); viewPanel.getChildren().clear(); // load composite component from file Resource componentResource = context.getApplication().getResourceHandler().createResource(“whatever.xhtml”, “components/form”); UIComponent composite = context.getApplication().createComponent(context, componentResource); // push component to el composite.pushComponentToEL(context, […]