Странное поведение viewScope с атрибутом timeZone - PullRequest
0 голосов
/ 11 ноября 2010

Markup:

    <h:head>
        <title>title</title>
    </h:head>
    <h:body>
        <h:form>
        <h:outputText value="#{viewScopeBacking.date}">
            <f:convertDateTime timeZone="#{viewScopeBacking.timeZone}"/>
        </h:outputText>

        <h:commandButton action="#{viewScopeBacking.action}" value="submit">
            <f:ajax event="action" render="op"/>
        </h:commandButton>

        <h:outputText value="#{viewScope.view}" id="op"/>
        </h:form>
    </h:body>
</html>

Фасоль:

@ManagedBean
@RequestScoped
public class viewScopeBacking {

    public viewScopeBacking() {
    }
    @ManagedProperty(value = "#{viewScope}")
    Map<String, Object> viewMap;
    private Date date = new Date();
    private TimeZone timeZone = TimeZone.getDefault();

    public void action() {
        getViewMap().put("view", "hello world");
    }

    //getters and setters
    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public TimeZone getTimeZone() {
        return timeZone;
    }

    public void setTimeZone(TimeZone timeZone) {
        this.timeZone = timeZone;
    }

    public Map<String, Object> getViewMap() {
        return viewMap;
    }

    public void setViewMap(Map<String, Object> viewMap) {
        this.viewMap = viewMap;
    }
}

После нажатия кнопки выходной текст должен обновляться теоретически. Но этого не произойдет, пока вы не удалите атрибут timeZone для convertDateTime.

1 Ответ

0 голосов
/ 01 ноября 2011

использование <f:convertDateTime timeZone="#{Application.timeZone}"/>

вместо вашего ManagedBean.

по крайней мере, это решило мою проблему. дайте мне знать, если вы знаете причину.

ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...