点击 ace:textEntry 触发侦听器
Trigger listener clicking on ace:textEntry
我正在使用 JSF 2.0,我想在单击 ace:textEntry.
时调用 Java 控制器中定义的函数
我这样试过:
<ace:textEntry readonly="true" value="#{myController.getValue()}"
onclick="#{myController.myFunc()}"/>
但是当我的页面打开时,会立即调用点击事件。
所以,我尝试了:
<ace:textEntry readonly="true" value="#{myController.getValue()}">
<ace:ajax event="click" listener="#{myController.myFunc()}"/>
</ace:textEntry>
但是我的页面没有呈现。
还有其他方法可以实现这种行为吗?
PS:我也可以使用类似的 JSF 组件来代替 ace:textEntry。
首先,您不直接在 JSF 中访问 getter 以获取价值支持 - 您访问 属性。其次,您应该使用正确的签名调用侦听器。要更正您的示例,我会首先像这样重写调用,
<ace:textEntry readonly="true" value="#{myController.value}">
<ace:ajax event="click" listener="#{myController.myFunc}"/>
</ace:textEntry>
然后定义MyController,像这样;
@Named
@ViewScoped
public class MyController {
private value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public void myFunc(javax.faces.event.AjaxBehaviorEvent event) {
/* Do somethinig here... */
}
}
我正在使用 JSF 2.0,我想在单击 ace:textEntry.
时调用 Java 控制器中定义的函数我这样试过:
<ace:textEntry readonly="true" value="#{myController.getValue()}"
onclick="#{myController.myFunc()}"/>
但是当我的页面打开时,会立即调用点击事件。
所以,我尝试了:
<ace:textEntry readonly="true" value="#{myController.getValue()}">
<ace:ajax event="click" listener="#{myController.myFunc()}"/>
</ace:textEntry>
但是我的页面没有呈现。
还有其他方法可以实现这种行为吗?
PS:我也可以使用类似的 JSF 组件来代替 ace:textEntry。
首先,您不直接在 JSF 中访问 getter 以获取价值支持 - 您访问 属性。其次,您应该使用正确的签名调用侦听器。要更正您的示例,我会首先像这样重写调用,
<ace:textEntry readonly="true" value="#{myController.value}">
<ace:ajax event="click" listener="#{myController.myFunc}"/>
</ace:textEntry>
然后定义MyController,像这样;
@Named
@ViewScoped
public class MyController {
private value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public void myFunc(javax.faces.event.AjaxBehaviorEvent event) {
/* Do somethinig here... */
}
}