- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的复合代码:
<cc:attribute name="step" type="Get.Model.Step"/>
<cc:attribute name="removeQuantityAction" />
[...]
<p:dataList id="quantities" value="#{cc.attrs.Quantities}" var="quantity" itemType="disc">
<com:Quantity removeQuantityAction="#{cc.attrs.removeQuantityAction(cc.attrs[step],quantity)}" />
</p:dataList>
我也试过这个:
removeQuantityAction="#cc.attrs.removeQuantityAction(cc.attrs.step,quantity)}"
但我确实明白了
/resources/Get.comp/Step.xhtml @51,156 removeQuantityAction="#{cc.attrs.removeQuantityAction(cc.attrs.step,quantity)}" /resources/Get.comp/Step.xhtml @51,156 removeQuantityAction="#{cc.attrs.removeQuantityAction(cc.attrs.step,quantity)}" Illegal attempt to pass arguments to a composite component lookup expression (i.e. cc.attrs.[identifier]).
方法本身看起来像这样:
public void removeQuantity(Step step, Quantity quantity) {}
我该如何解决这个问题?
最佳答案
有可能将托管 bean 的引用和方法名称作为单独的参数传递:
父页面:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:my="http://java.sun.com/jsf/composite/emcomp">
<h:head />
<h:body>
<h:form>
<my:myButton value="Send" methodName="send" beanRefer="#{bean}" />
</h:form>
</h:body>
</html>
复合:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<composite:interface>
<composite:attribute name="value" required="true" />
<composite:attribute name="methodName" required="true" />
<composite:attribute name="beanRefer" required="true" />
</composite:interface>
<composite:implementation>
<h:commandButton value="#{cc.attrs.value}"
action="#{cc.attrs.beanRefer[cc.attrs.methodName]}" />
</composite:implementation>
</h:body>
</html>
@ManagedBean
@ViewScoped
public class Bean {
public void send() {
System.out.println("Sent!");
}
}
为了使用参数,here you have @BalusC 的一个很好的解释,它基本上意味着将 setPropertyActionListener
添加到您的方法调用中,因为您不能将动态方法引用与即时参数结合起来:
<h:commandButton value="#{cc.attrs.value}"
action="#{cc.attrs.beanRefer[cc.attrs.methodName]}">
<f:setPropertyActionListener
target="#{cc.attrs.beanRefer[cc.attrs.targetProperty]}"
value="#{cc.attrs.methodArgument}" />
</h:commandButton>
private String targetProperty;
//Getter and setters
public void send() {
System.out.println("Sent " + targetProperty);
}
关于jsf - 通过复合组件传递 MethodParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19358856/
这是我的复合代码: [...] 我也试过这个: removeQuantityAc
我正在扩展HandlerMethodArgumentResolver以获取由自定义注释注释的参数 @RequestMapping(value = "/cases/{caseId}", params =
我写了这段代码: public class CustomData { public int F1 { get; set; } public int F2 { get; set; }
我正在使用 spring boot,并且我正在尝试设置一个测试场景,在该场景中,我使用mockito 来调用一个 bean,并调用模拟的 JPARepository。 相关代码如下: 存储库 @Rep
问题很简单: 有一个命名空间 xmlns:local= "clr-namespace:Notify" . 有一个“通知”类。该类位于解决方案中 有一个 XAML 代码: 在这种形式下,一
我在 DataGrid 中有两个 DataGridComboBoxColumns(技术上是 DataGridTemplateColumns)。我正在使用 MVVM。 第一列的 ItemsSource
我是一名优秀的程序员,十分优秀!