Jquery datepicker和Spring Locale。使用区域设置语言更改datepicker语言。如何?

时间:2013-07-31 08:49:31

标签: javascript jquery spring spring-mvc datepicker

美好的一天的人们。感谢你们在这个令人惊叹的网络资源上帮助人们完成任何事情。

所以,我根本没有JQuery和JavaScript的经验。我从互联网上得到了简单的JQuery datepicker代码:

$("#dateinput").datepicker({
    dateFormat: "yy-mm-dd",
    beforeShowDay: beforeShowDayHandler,
    showOn: 'both',
    onClose: function (dateText, inst) {
        $(this).attr("disabled", false);
    },
    beforeShow: function (input, inst) {
        $(this).attr("disabled", true);
    }
});

function beforeShowDayHandler(date) {
    if (self.SelectedDayValue != -1) {
        if (date.getDate() != 1) {
            return [false, '', 'selected'];
        }
    }
    return [true, ''];
} 

我有一个想法,当我的Springs语言环境改变时,影响我的datepicker更改他的语言环境。这是我的spring locale config:

在我的Servlet-context.xml中:

<!-- Change my local over url variable lang. Example: ?lang=en -->
    <interceptors>
        <beans:bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
             <beans:property name="paramName" value="lang"/>
        </beans:bean>
    </interceptors>

    <!-- Fething lacale from use cookie files -->
    <beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
        <beans:property name="defaultLocale" value="ru"/>
    </beans:bean>

在我的jsp和平代码中,当用户点击链接时改变页面的区域设置:

Language/Язык/文 : <a href="input?lang=en">English</a>||<a href="input?lang=ru">Русский</a>||<a href="input?lang=cn">中文</a> 

正如您所看到的,当用户按下CHANGE LANGUAGE LINK时,它会在浏览器的地址字符串中传递一些参数,如:localhost:8080/controller/main.jsp?lang=en

如何获取这个参数并将其放入我的datepicker代码?任何例子?无论如何,如果你想要帮助的话,还要感谢你们。

1 个答案:

答案 0 :(得分:0)

我曾在项目中使用过此代码段。希望它有所帮助:

$(function() {
    calendar();
});

function calendar(){
   //omitted datepicker init 

   $(".calendar").datepicker("option", $.datepicker.regional["<%=locale%>"]);
}

所有日期字段的css属性都指定为日历,而locale是在java代码中检索的。我不熟悉CookieLocaleResolver,我使用了SessionLocalResolver但是应该有相同的方法来获取Locale。

public static Locale getLocaleFrom(HttpSession session) {
    return (Locale) session
            .getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
}

我记得我们在Java和datepicker之间修改了不同语言环境值的datepicker。您可以使用映射机制作为替代解决方案。