我想绑定<p:selectBooleanCheckbox>到我的控制器方法.我尝试绑定时遇到错误.还有其他方法吗?
Property 'calculateBooleanValue' not found on type tr.controller.MyController
Run Code Online (Sandbox Code Playgroud)
这是我的看法
<p:datatable var="dataRow" ....>
<p:selectBooleanCheckbox value="#{myController.calculateBooleanValue(dataRow)}" />
Run Code Online (Sandbox Code Playgroud)
myController的
public boolean calculateBooleanValue(Data data) {
//There are some calculations with data and returns some boolean value acc. to this data
}
Run Code Online (Sandbox Code Playgroud)
该value属性必须表示值表达式.即它必须绑定到由真正的javabean getter和setter表示的属性.不应将方法表达式语法与括号一起使用,这不是有效的值表达式语法.
因此,所以:
<p:selectBooleanCheckbox value="#{myController.booleanValue}" />
Run Code Online (Sandbox Code Playgroud)
同
private boolean booleanValue;
@PostConstruct
public void init() {
booleanValue = true;
}
public boolean isBooleanValue() {
return booleanValue;
}
public void setBooleanValue(boolean booleanValue) {
this.booleanValue = booleanValue;
}
Run Code Online (Sandbox Code Playgroud)
如果您打算在每次单击复选框时执行一些"控制器方法"(就像您自己调用的那样),那么添加一个<p:ajax>带有监听器:
<p:selectBooleanCheckbox value="#{myController.booleanValue}">
<p:ajax listener="#{myController.changeBooleanValue}" />
</p:selectBooleanCheckbox>
Run Code Online (Sandbox Code Playgroud)
同
public void changeBooleanValue() {
System.out.println("Current boolean value is: " + booleanValue);
// ...
// Do your job here.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |