java - 在 JSF (Primefaces) 中更新标签

标签 java jsf primefaces

我有一个带有按钮和标签的 JSF 页面。当用户按下 simulateYearButton 按钮时,标签 yearLabel 中显示的值应该递增。

带有按钮和标签的表单如下所示:

    <h:form>
        <p:commandButton value="Заресетить" id="resetButton"
            actionListener="#{entryPage.resetButtonAction}" />

        <p:commandButton value="Просимулировать год" id="simulateYearButton"
            actionListener="#{entryPage.simulateYearButtonAction}">
            <f:ajax event="click" render="yearLabel" />
        </p:commandButton>


        <h:outputLabel id="yearLabelLabel" for="yearLabel" value="Год:" />
        <h:outputLabel id="yearLabel" value="#{entryPage.yearLabel}"
            style="font-weight:bold" />
    </h:form>

entryPage bean 的代码:

@ManagedBean(name = "entryPage")
@RequestScoped
public class EntryPageController {
    ...
    private int year;
    private String yearLabel;

    @PostConstruct
    public void init()
    {
        this.yearLabel = "2012";
    }

    ...

    public void simulateYearButtonAction() {
        LOGGER.debug("EntryPageController.simulateYearButtonAction");
        this.year++;
        this.yearLabel = Integer.toString(this.year);
    }

    public String getYearLabel() {
        return yearLabel;
    }
}

当我按下 simulateYearButton 时,方法 simulateYearButtonAction 被执行(我在输出中看到日志消息),但标签没有更新。

我应该如何修改代码以便在按下按钮时更新标签?

最佳答案

新答案:

 <p:commandButton value="Просимулировать год" id="simulateYearButton"
      actionListener="#{entryPage.simulateYearButtonAction}" update="yearLabel">
 </p:commandButton>

因为 commandbutton 默认是 ajax 的。

接下来,您需要创建 bean @ViewScoped。 接下来,您需要将 yearLabel 的值赋给 year :

 @PostConstruct
public void init()
{
    this.yearLabel = "2012";
    this.year = Integer.parseInt(yearLabel);
}

关于java - 在 JSF (Primefaces) 中更新标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996108/

相关文章:

java - Spring MVC 中的输入验证

java - bean 的类属性中的属性占位符

java - p :commandButton action and f:setpropertyactionlistener not invoked in p:columngroup

html - 将 JSF HTML5 友好标记与其他组件库一起使用

java - JPanel 未在 JFrame 上绘制

jsf - RowSelect 事件 p :dataTable

java - 这种软件风格叫什么?

Primefaces 5.0.4 未找到 AtmosphereHandler

java - PrimeFaces v3.4++ : Datatable sorting is not working properly

java - 如何获取EditText中选中的光标位置?