作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个(在我们看来)非常简单的场景。但是我们不知何故卡在了复合组件和 f:attribute 标签上。我会尽量保持代码简单。
复合组件:
<cc:interface name="button">
...
<cc:attribute
name="actionListener"
required="true"
method-signature="void f(javax.faces.event.ActionEvent)"
target="button"
shortDescription="The action listener for this button." />
...
</cc:interface>
<cc:implementation>
<ice:commandButton
...
actionListener="#{cc.attrs.actionListener}"
...>
<cc:insertChildren />
</ice:commandButton>
</cc:implementation>
<ctrl:button
...
actionListener="#{bean.method}"
...>
<f:attribute name="objectId" value="#{someObject.id}" />
</ctrl:button>
public void method(ActionEvent event)
{
...
event.getComponent().getAttributes().get("objectId");
...
}
最佳答案
此 <f:attribute>
hack 是 JSF 1.0/1.1 的遗留物,当时无法将对象作为附加参数传递给命令按钮/链接。从 JSF 1.2 开始,您应该使用 <f:setPropertyActionListener>
为了这。
<ctrl:button action="#{bean.method}">
<f:setPropertyActionListener target="#{bean.objectId}" value="#{someObject.id}" />
</ctrl:button>
<ctrl:button action="#{bean.method(someObject.id)}" />
关于jsf-2 - 使用 f :attribute inside a composite component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9032771/
我是一名优秀的程序员,十分优秀!