⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 localeportlet.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
字号:
/* * @author <a href="mailto:novotny@gridsphere.org">Jason Novotny</a> * @version $Id: LocalePortlet.java 4496 2006-02-08 20:27:04Z wehrens $ */package org.gridsphere.portlets.core.locale;import org.gridsphere.provider.event.jsr.ActionFormEvent;import org.gridsphere.provider.event.jsr.RenderFormEvent;import org.gridsphere.provider.portlet.jsr.ActionPortlet;import org.gridsphere.provider.portletui.beans.ListBoxBean;import org.gridsphere.provider.portletui.beans.ListBoxItemBean;import org.gridsphere.services.core.locale.LocaleService;import org.gridsphere.services.core.user.User;import javax.portlet.PortletConfig;import javax.portlet.PortletException;import javax.portlet.PortletRequest;import javax.portlet.PortletSession;import java.util.Locale;public class LocalePortlet extends ActionPortlet {    private LocaleService localeService = null;    public void init(PortletConfig config) throws PortletException {        super.init(config);        localeService = (LocaleService) createPortletService(LocaleService.class);        DEFAULT_VIEW_PAGE = "showLocale";    }    private ListBoxItemBean makeLocaleBean(String language, String name, Locale locale) {        ListBoxItemBean bean = new ListBoxItemBean();        String display;        display = language.substring(0, 1).toUpperCase() + language.substring(1);        bean.setValue(display);        bean.setName(name);        if (locale.getLanguage().equals(name)) {            bean.setSelected(true);        }        return bean;    }    public void showLocale(RenderFormEvent event) throws PortletException {        PortletRequest request = event.getRenderRequest();        Locale locale = request.getLocale();        request.setAttribute("locale", locale);        ListBoxBean localeSelector = event.getListBoxBean("localeLB");        localeSelector.clear();        localeSelector.setOnChange("this.form.submit()");        localeSelector.setSize(1);        Locale[] locales = localeService.getSupportedLocales();        for (int i = 0; i < locales.length; i++) {            Locale displayLocale = locales[i];            ListBoxItemBean localeBean = makeLocaleBean(displayLocale.getDisplayLanguage(displayLocale), displayLocale.getLanguage(), locale);            localeSelector.addBean(localeBean);        }        setNextState(request, "locale/viewlocale.jsp");    }    public void selectLang(ActionFormEvent event) throws PortletException {        ListBoxBean localeSelector = event.getListBoxBean("localeLB");        PortletSession session = event.getActionRequest().getPortletSession(true);        String loc = localeSelector.getSelectedValue();        // Javascript exploit found by PSNC and Tomek Kuczynski, check the loc to not allow a javascript attack        if (loc != null) {            Locale[] locales = localeService.getSupportedLocales();            boolean valid = false;            for (Locale l : locales) {                if (loc.equals(l.toString())) valid = true;            }            if (valid) {                Locale locale = new Locale(loc, "", "");                session.setAttribute(User.LOCALE, locale, PortletSession.APPLICATION_SCOPE);            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -