在命令链接操作后使用素面更新多个元素

时间:2019-05-24 10:43:59

标签: primefaces jsf-2

我想在单击命令链接后更新多个标签,这会触发一个会生成一些随机值的bean。这些随机值应与标签一起显示。使用Primefaces 6.0-7.0和JSF 2.1 MyFaces。

实际上,调用了bean,生成了字符串并执行了更新,但似乎仅应用了更新选择器的第一个匹配项。因此,只有第一个标签会使用bean生成的值进行更新。

我已将primefaces版本从6.0更改为7.0,但没有效果,我尝试了使用不同分隔字符“,”,“”,“ form:labelupdate” ...样式类选择器“ @(。updateelement)的各种选择器声明

   <h:form id="form">
        <br />
        <br />
        <p:outputLabel value="#{dialogController.randomMessage}"
            id="labelupdate" />
        <br />
        <p:outputLabel value="#{dialogController.randomMessage}"
            id="updatedlg" />
        <br />

        <p:commandLink action="#{dialogController.generateValue()}"
            value="#{dialogController.randomMessage}"
            update="labelupdate updatedlg" />
    </h:form>

控制器:

import java.util.Random;

import javax.annotation.ManagedBean;
import javax.inject.Named;



@Named
@ManagedBean
public class DialogController {


private String randomMessage = "1";

public void generateValue() {
    Random ran = new Random(System.currentTimeMillis());
    int randomNumber = ran.nextInt();
    System.out.println("Generated Number is: " + randomNumber);
    this.setRandomMessage(this.getRandomMessage() + "-"+randomNumber);

    System.out.println("New String Value is: " + getRandomMessage());
}

public String getRandomMessage() {
    return randomMessage;
}

public void setRandomMessage(String randomMessage) {
    this.randomMessage = randomMessage;
}

我希望两个输出标签都包含来自bean的相同的新生成的值。我做错什么了吗?

0 个答案:

没有答案