Html 多重日期格式

Html 多重日期格式,html,jsf,primefaces,Html,Jsf,Primefaces,我的任务是根据用户的语言更改日期格式。目前该网站以中文和英文运行,但我无法根据用户的语言更改掩码的格式 <h:outputText styleClass="outputText" id="index_output_todate" value="#{msg.index_output_todate}"> </h:outputText> <p:calendar value="#{pc_Index.w_message.am_t

我的任务是根据用户的语言更改日期格式。目前该网站以中文和英文运行,但我无法根据用户的语言更改掩码的格式

<h:outputText styleClass="outputText"
                        id="index_output_todate" value="#{msg.index_output_todate}">
</h:outputText>
<p:calendar value="#{pc_Index.w_message.am_todate_filter}"
    id="index_input_todate" styleClass="calendar" maxlength="10"
    pattern="#{pc_Index.dateDisplayFormat}" onfocus="$(this).mask('9999年99月99日');">
<p:watermark for="index_input_todate" value="#{pc_Index.watermarkDateDisplayFormat}" />
<f:convertDateTime pattern="#{pc_Index.dateDisplayFormat}" />
</p:calendar>
编辑:

HTML


似乎没有什么问题。但是掩码似乎没有出现

我不知道您的代码中到底有哪一段失败了。我尝试了一个更简单的示例,效果非常好,因此我建议您调试此功能中涉及的所有代码

<h:form>
    <p:outputLabel for="mask" value="Mask:" />
    <p:calendar id="mask" value="#{dumpController.date}" pattern="#{dumpController.dateDisplayFormat}" mask="true" />
    <p:watermark for="mask" value="Input a date" />
</h:form>


我不知道您的代码中到底有哪一段失败了。我尝试了一个更简单的示例,效果非常好,因此我建议您调试此功能中涉及的所有代码

<h:form>
    <p:outputLabel for="mask" value="Mask:" />
    <p:calendar id="mask" value="#{dumpController.date}" pattern="#{dumpController.dateDisplayFormat}" mask="true" />
    <p:watermark for="mask" value="Input a date" />
</h:form>


面罩似乎不起作用。当我专注于它时,似乎什么也没有出现。尝试删除该值,它应该有一个这样的空白____年__月__日对不起,我不明白哪里出了问题。这种行为是正确的。掩码在要填充的地方添加了下划线(u)。经过多次尝试,我仍然无法获取您在那里的内容。这是我更改的内容,不确定是什么,但有一些内容阻止我显示掩码。xhtml代码似乎正确。也许,ManagedBeans就是问题所在。你使用的命名法不是“传统的”。请用代码的最新版本更新你的问题,包括bean的代码。掩码似乎不起作用。当我专注于它时,似乎什么也没有出现。尝试删除该值,它应该有一个这样的空白____年__月__日对不起,我不明白哪里出了问题。这种行为是正确的。掩码在要填充的地方添加了下划线(u)。经过多次尝试,我仍然无法获取您在那里的内容。这是我更改的内容,不确定是什么,但有一些内容阻止我显示掩码。xhtml代码似乎正确。也许,ManagedBeans就是问题所在。你使用的命名法不是“传统的”。请用代码的最新版本更新您的问题,包括bean代码。
                         if (isPageFirstLoad(JSP)) {
        _w.setIndex_viewtype("11961003");
        if (isEmptyNull(_w.getAm_todate_filter())) {
            _w.setAm_todate_filter(getTodayDate());
        }

        Date _todate = _w.getAm_todate_filter();
        Date d = _w.addDaysToDate(_todate, -7);
        _w.setAm_frdate_filter(d);
        _w.setViewNew(true);
        _w.populateAlertsMessages();
    }

    if (this.trigger_viewtype_change) {
        this.trigger_viewtype_change = false;
    }
}









     private Date date;

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}
public String getDateDisplayFormat() {
    String locale = getUserLocale(); //WARNING!! Hard-coded!!
    final String DATEFORMAT_UK = "dd/MM/yyyy";
    final String DATEFORMAT_US = "mm/dd/yyyy";
    final String DATEFORMAT_CN = "yyyy年MM月dd日";
    if(!locale.isEmpty() && locale.equals("en_US")) {
       return DATEFORMAT_US;
    }
    if(!locale.isEmpty() && locale.equals("zh_CN")) {
       return DATEFORMAT_CN;
    }
    return DATEFORMAT_UK;
}
<h:form>
    <p:outputLabel for="mask" value="Mask:" />
    <p:calendar id="mask" value="#{dumpController.date}" pattern="#{dumpController.dateDisplayFormat}" mask="true" />
    <p:watermark for="mask" value="Input a date" />
</h:form>
private Date date;

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}
public String getDateDisplayFormat() {
    final String locale = "zh_CN"; //WARNING!! Hard-coded!!
    final String DATEFORMAT_UK = "dd/MM/yyyy";
    final String DATEFORMAT_US = "mm/dd/yyyy";
    final String DATEFORMAT_CN = "yyyy年MM月dd日";
    if(!locale.isEmpty() && locale.equals("en_US")) {
       return DATEFORMAT_US;
    }
    if(!locale.isEmpty() && locale.equals("zh_CN")) {
       return DATEFORMAT_CN;
    }
    return DATEFORMAT_UK;
}