我想在单击命令链接后更新多个标签,这会触发一个会生成一些随机值的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的相同的新生成的值。我做错什么了吗?