本文的目的是介绍自定义SpringBoot入门程序:如何将i18n消息贡献给MessageSource?的详细情况,特别关注springboot自定义消息转换器的相关信息。我们将通过专业的研究、有关数
本文的目的是介绍自定义Spring Boot入门程序:如何将i18n消息贡献给MessageSource?的详细情况,特别关注springboot自定义消息转换器的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解自定义Spring Boot入门程序:如何将i18n消息贡献给MessageSource?的机会,同时也不会遗漏关于java – 在Spring MVC框架中不使用MessageSourceAware访问MessageSource的方法、java-假设Spring MessageSource实现是线程安全的吗?、Java——Struts2 之国际化 struts.custom.i18n.resources=globalMessages、org.springframework.context.support.MessageSourceAccessor的实例源码的知识。
本文目录一览:- 自定义Spring Boot入门程序:如何将i18n消息贡献给MessageSource?(springboot自定义消息转换器)
- java – 在Spring MVC框架中不使用MessageSourceAware访问MessageSource的方法
- java-假设Spring MessageSource实现是线程安全的吗?
- Java——Struts2 之国际化 struts.custom.i18n.resources=globalMessages
- org.springframework.context.support.MessageSourceAccessor的实例源码
自定义Spring Boot入门程序:如何将i18n消息贡献给MessageSource?(springboot自定义消息转换器)
我正在编写一个自定义的Spring Boot入门程序,其他开发人员将其放入他们的应用程序中,并且该入门程序包含开箱即用的控制器和UI屏幕。
这些UI屏幕已经国际化,并且i18n键/值在打包文件中:com/foo/wherever/i18n.properties
。
我想确保在启动时加载启动程序时,这些i18n.properties可以MessageSource
自动在应用程序中使用,以便我的UI页面可以工作(通过常规Spring
Controller + ViewResolver + View实现呈现), 而无需应用程序开发人员指定此自己归档 。
换句话说,他们应该能够将我的启动器添加到其运行时类路径中,并且一切都“正常运行”而无需进行任何配置。
现在,我发现应用程序开发人员可以创建自己的src/main/resources/messages.properties
文件 并在中
手动配置其他消息文件application.properties
:
spring.messages.basename = messages, com.foo.wherever.i18n
这将起作用。
但是,这需要满足以下两个条件:
- 他们必须手动配置
spring.messages.basename
属性-这不是自动的。和 - 他们必须
messages.properties
在其应用程序类路径中具有自己的文件。如果messages.properties
文件不存在,spring.messages.basename
则什至不起作用。即使他们不关心i18n,这仍然是必需的-不理想。
我想我 可以
将我的i18n.properties文件移动到启动程序.jar中的classpath:/messages.properties文件中,但这似乎不是一个好的解决方案:如果应用程序开发人员拥有自己的messages.properties文件,则其中只有一个它们将被读取,从而导致缺少消息值。
看起来好像春天启动MessageSourceAutoConfiguration应该有一个概念CompositeMessageSource
是在一个或多个迭代MessageSource
实例可用(并且Order
在Spring的ApplicationContext
ED)和 该
所使用的DispatcherServlet的。这将使任何入门者只需MessageSource
在其自动配置中声明一个即可为可用消息做出贡献
我可以按照我的要求去做吗?对于应用程序开发人员来说,最“轻松”的解决方案是什么?
答案1
小编典典也许这是一个远景,但是您可以尝试使用BeanFactoryPostProcessor。
想法如下:
从应用程序上下文中取出“ messageSource” bean。请注意,如果例如开发人员想要使用自己的实现并且不使用spring boot自动配置,则可能但不一定是spring boot的。
将其替换为您自己的尝试解析“您的键”的实现,其余的委托给原始消息源。反之亦然,如果您想让开发人员覆盖您的翻译(如果原始消息源没有为未知键抛出异常,则可能会出现问题)。
但是,也许有更好的方法可以做到这一点。
java – 在Spring MVC框架中不使用MessageSourceAware访问MessageSource的方法
我有几个servlet旨在保存自己的消息源,但是有一个静态函数使用此消息源作为备份,并且在正常情况下使用全局BDB来检索本地化文本.
我想知道是否有一种方法可以检索调用此全局静态函数的servlet上下文的MessageSource?
我不能在所有servlet中使用MessageSourceAware.我查看了Spring文档,发现了MessageSourceAware和@autowired属性.我不能使用注释,因为我使用的是Spring 2.0.
任何帮助赞赏.
谢谢,
PARTH
WebApplicationContext webAppContext = RequestContextUtils.getWebApplicationContext(request);
MessageSource messageSource = webAppContext.getBean("messageSource");
java-假设Spring MessageSource实现是线程安全的吗?
是否可以安全地假设org.springframework.context.MessageSource接口的所有实现在初始化后都是线程安全的?
我希望它是安全的,但是现在我正在查看Spring源代码,并且有org.springframework.context.support.ReloadableResourceBundleMessageSource会不时地重新加载属性,并且文档中没有任何关于线程安全的内容. ..
编辑:看来ReloadableResourceBundleMessageSource确实确实在需要的地方被同步了……但是我的原始问题仍然存在.
这么说,从您的应用程序的角度来看,脏读有什么危害?标签或消息值错误?您可能不必担心缺少值,因为如果将JSP或类修改为使用新消息,则必须重新部署整个应用程序.我认为您在这里很安全.
Java——Struts2 之国际化 struts.custom.i18n.resources=globalMessages
1. 在 src 下 建立 struts.properties 文件,内容为:struts.custom.i18n.resources=globalMessages
struts.custom.i18n.resources 是固定写法,在 struts2 核心包中可以找到。
2. 在 src 下 建立 globalMessages_en.properties (代表英文国际化)、建立 globalMessages_zh.properties(中文国际化)文件
globalMessages_en.properties 内容为:(命名 = 你想要显示的名字)
username=username
password=password
globalMessages_zh.properties 内容为:(命名 = 你想要显示的名字)
username=\u7528\u6237\u540D
password=\u5BC6\u7801
建议:在中文的文件中,直接在 Properties 页面中点击 Add 进行添加,不然直接写的话,系统不认识,报错。
3.jsp 文件:
<h1><font color="red">Input UserInfo</font></h1>
<s:form action="userlogin">
<s:textfield name="user.username" label="%{getText(''username'')}"></s:textfield>
<s:textfield name="user.password" label="%{getText(''password'')}"></s:textfield>
<s:submit label="submit"></s:submit>
</s:form>
label="%{getText (''username'')}" 就是获取国际化文件中所配置的内容。
4. 结果:
org.springframework.context.support.MessageSourceAccessor的实例源码
@Autowired public AuditOAuth2AccessDeniedHandler( TokenStore tokenStore,RequestAuditRecordDataService requestAuditRecordDataService,SecurityEventsLogService securityEventsLogService,UserContextFactory userContextFactory,WebResponseExceptionTranslator exceptionTranslator,AuditLogFactory auditLogFactory,MessageSourceAccessor messageSourceAccessor ) { this.userContextFactory = userContextFactory; this.tokenStore = tokenStore; this.requestAuditRecordDataService = requestAuditRecordDataService; this.securityEventsLogService = securityEventsLogService; this.exceptionTranslator = exceptionTranslator; this.auditLogFactory = auditLogFactory; this.messageSourceAccessor = messageSourceAccessor; }
@Override protected Map<String,Object> referenceData(HttpServletRequest request) throws Exception { Map<String,Object> map = new HashMap<String,Object>(); MessageSourceAccessor msa = getMessageSourceAccessor(); map.put("allowAdmin",ModuleUtil.allowAdmin().toString()); map.put("disallowUploads",msa.getMessage("Module.disallowUploads",new String[] { ModuleConstants.RUNTIMEPROPERTY_ALLOW_ADMIN })); map.put("openmrsversion",OpenmrsConstants.OPENMRS_VERSION_SHORT); map.put("moduleRepositoryURL",WebConstants.MODULE_REPOSITORY_URL); map.put("loadedModules",ModuleFactory.getLoadedModules()); return map; }
public void uncaughtException(Thread thread,Throwable throwable) { LogFactory.getLog(ApplicationLifecycleAdvisor.class).error(throwable.getMessage(),throwable); String exceptionMessage; if (throwable instanceof MessageSourceResolvable) { exceptionMessage = ((MessageSourceAccessor) applicationservicesLocator.services() .getService(MessageSourceAccessor.class)) .getMessage((MessageSourceResolvable) throwable); } else { exceptionMessage = throwable.getLocalizedMessage(); } if (!StringUtils.hasText(exceptionMessage)) { String defaultMessage = "An application exception occurred.\nPlease contact your administrator."; exceptionMessage = ((MessageSourceAccessor) applicationservicesLocator.services() .getService(MessageSourceAccessor.class)) .getMessage("applicationDialog.defaultException",defaultMessage); } Message message = new DefaultMessage(exceptionMessage,Severity.ERROR); applicationwindow activeWindow = Application.instance().getActiveWindow(); JFrame parentFrame = (activeWindow == null) ? null : activeWindow.getControl(); JOptionPane.showMessageDialog(parentFrame,message.getMessage(),"Error",JOptionPane.ERROR_MESSAGE); }
public void testGetErrorMessage() { DefaultBindingErrorMessageProvider provider = new DefaultBindingErrorMessageProvider(); TestAbstractFormModel formModel = new TestAbstractFormModel(new Object()) { public FieldFace getFieldFace(String field) { return new DefaultFieldFace("Some Property","",new LabelInfo("Some Property"),null); } }; formModel.add("someProperty",new ValueHolder("value")); StaticmessageSource messageSource = new StaticmessageSource(); messageSource.addMessage("typeMismatch",Locale.getDefault(),"{0} has an invalid format \"{1}\""); MessageSourceAccessor messageSourceAccessor = new MessageSourceAccessor(messageSource); provider.setMessageSourceAccessor(messageSourceAccessor); ValidationMessage message = provider.getErrorMessage(formModel,"someProperty","new value",new IllegalArgumentException()); assertNotNull(message); assertEquals("someProperty",message.getproperty()); assertEquals("Some Property has an invalid format \"new value\"",message.getMessage()); }
@Test public void shouldReturnTheFormattedLocalizedMessage() { CurrentLocale locale = new CurrentLocale(); ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource(); source.setBasename("test_message"); MessageSourceAccessor accessor = new MessageSourceAccessor(source); Localizer localizer = new Localizer(accessor,locale); assertthat(localizer.localize("hello_world"),is("Hello World")); locale.setLocaleString(Localizer.LOCALE_ENGLISH_US); assertthat(localizer.localize("MY_HOME","San Francisco"),is("My home is San Francisco")); locale.setLocaleString(Localizer.LOCALE_KANNADA); assertthat(localizer.localize("MY_HOME","ಬೆಂಗಳೂರು"),is("ನಮ್ಮ ಊರು ಬೆಂಗಳೂರು")); locale.setLocaleString(Localizer.LOCALE_KANNADA); assertthat(localizer.localize("MY_BIRTHDAY",new DateTime(1984,12,23,14,DateTimeZone.UTC).toDate()),is("ನನ್ನ ಹುಟ್ಟು ಹಬ್ಬ 12/23/84")); locale.setLocaleString(Localizer.LOCALE_ENGLISH_US); assertthat(localizer.localize("MY_BIRTHDAY",is("My birthday is 12/23/84")); }
public void uncaughtException(Thread thread,JOptionPane.ERROR_MESSAGE); }
public void testGetErrorMessage() { DefaultBindingErrorMessageProvider provider = new DefaultBindingErrorMessageProvider(); TestAbstractFormModel formModel = new TestAbstractFormModel(new Object()) { public FieldFace getFieldFace(String field) { return new DefaultFieldFace("Some Property",message.getMessage()); }
public HalLinkListSerializer(BeanProperty property,CurieProvider curieProvider,EmbeddedMapper mapper,MessageSourceAccessor messageSource) { super(List.class,false); this.property = property; this.curieProvider = curieProvider; this.mapper = mapper; this.messageSource = messageSource; }
public HalHandlerInstantiator(RelProvider resolver,MessageSourceAccessor messageSource,boolean enforceEmbeddedCollections) { EmbeddedMapper mapper = new EmbeddedMapper(resolver,curieProvider,enforceEmbeddedCollections); Assert.notNull(resolver,"RelProvider must not be null!"); this.instanceMap.put(HalResourcesSerializer.class,new HalResourcesSerializer(mapper)); this.instanceMap.put(HalLinkListSerializer.class,new HalLinkListSerializer(curieProvider,mapper,messageSource)); }
@Autowired X509AuthenticationFailureHandler( MessageSourceAccessor messageSourceAccessor,ObjectMapper objectMapper ) { this.objectMapper = objectMapper; this.messageSourceAccessor = messageSourceAccessor; }
@Autowired AuditOAuth2AuthenticationExceptionHandler( CurrentTimeProvider currentTimeProvider,AuthFailureAuditRecordDataService authFailureAuditRecordDataService,MessageSourceAccessor messageSourceAccessor,AuditLogFactory auditLogFactory ) { this.currentTimeProvider = currentTimeProvider; this.authFailureAuditRecordDataService = authFailureAuditRecordDataService; this.auditLogFactory = auditLogFactory; this.objectMapper = JsonParserFactory.create(); this.messageSourceAccessor = messageSourceAccessor; }
@Autowired OAuth2ExtraValidationFilter( OAuth2IssuerService oAuth2IssuerService,TokenStore tokenStore,AuditOAuth2AuthenticationExceptionHandler oAuth2AuthenticationExceptionHandler,AuthenticationEventPublisher eventPublisher ) { this.oAuth2IssuerService = oAuth2IssuerService; this.tokenStore = tokenStore; this.oAuth2AuthenticationExceptionHandler = oAuth2AuthenticationExceptionHandler; this.eventPublisher = eventPublisher; this.tokenExtractor = new BearerTokenExtractor(); this.messageSourceAccessor = messageSourceAccessor; }
/** * The onSubmit function receives the form/command object that was modified by the input form * and saves it to the db * * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest,* javax.servlet.http.HttpServletResponse,java.lang.Object,* org.springframework.validation.BindException) */ protected ModelAndView onSubmit(HttpServletRequest request,HttpServletResponse response,Object obj,BindException errors) throws Exception { HttpSession httpSession = request.getSession(); String view = getFormView(); if (Context.isAuthenticated()) { String[] cdList = request.getParameterValues("conceptDatatypeId"); ConceptService cs = Context.getConceptService(); StringBuilder success = new StringBuilder(""); StringBuilder error = new StringBuilder(); MessageSourceAccessor msa = getMessageSourceAccessor(); String deleted = msa.getMessage("general.deleted"); String notDeleted = msa.getMessage("general.cannot.delete"); if (cdList.length != 0) { log.warn("Deleting concept datatype is not supported"); if (!"".equals(error.toString())) { error.append("<br/>"); } error.append("ConceptDatatype").append(" ").append(notDeleted); } view = getSuccessView(); if (!"".equals(success.toString())) { httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR,success.toString()); } if (!"".equals(error.toString())) { httpSession.setAttribute(WebConstants.OPENMRS_ERROR_ATTR,error.toString()); } } return new ModelAndView(new RedirectView(view)); }
/** * @see org.springframework.web.servlet.mvc.AbstractFormController#processFormSubmission(javax.servlet.http.HttpServletRequest,* org.springframework.validation.BindException) */ protected ModelAndView processFormSubmission(HttpServletRequest request,BindException errors) throws Exception { if (!Context.isAuthenticated()) { errors.reject("auth.invalid"); } if (errors.hasErrors()) { return showForm(request,response,errors); } Person person = (Person) obj; MessageSourceAccessor msa = getMessageSourceAccessor(); String action = request.getParameter("action"); if (action.equals(msa.getMessage("Person.save"))) { updatePersonAddresses(request,person,errors); updatePersonNames(request,person); updatePersonAttributes(request,errors,person); } if (errors.hasErrors()) { return showForm(request,errors); } return super.processFormSubmission(request,errors); }
@Override protected Map<String,String> referenceData(HttpServletRequest request) throws Exception { Map<String,String> map = new HashMap<String,String>(); MessageSourceAccessor msa = getMessageSourceAccessor(); map.put("allowUpload",new String[] { ModuleConstants.RUNTIMEPROPERTY_ALLOW_UPLOAD })); return map; }
@SuppressWarnings("unchecked") @Override protected Map referenceData(HttpServletRequest request,Object command,Errors errors) throws Exception { Map<String,Object>(); Collection<TaskDeFinition> tasks = (Collection<TaskDeFinition>) command; Map<TaskDeFinition,String> intervals = new HashMap<TaskDeFinition,String>(); MessageSourceAccessor msa = getMessageSourceAccessor(); for (TaskDeFinition task : tasks) { Long interval = task.getRepeatInterval(); if (interval < 60) { intervals.put(task,interval + " " + msa.getMessage("Scheduler.scheduleForm.repeatInterval.units.seconds")); } else if (interval < 3600) { intervals.put(task,interval / 60 + " " + msa.getMessage("Scheduler.scheduleForm.repeatInterval.units.minutes")); } else if (interval < 86400) { intervals.put(task,interval / 3600 + " " + msa.getMessage("Scheduler.scheduleForm.repeatInterval.units.hours")); } else { intervals.put(task,interval / 86400 + " " + msa.getMessage("Scheduler.scheduleForm.repeatInterval.units.days")); } } map.put("intervals",intervals); return map; }
/** * The onSubmit function receives the form/command object that was modified by the input form * and saves it to the db * * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest,BindException errors) throws Exception { HttpSession httpSession = request.getSession(); Locale locale = Context.getLocale(); if (Context.isAuthenticated()) { AlertService as = Context.getAlertService(); MessageSourceAccessor msa = getMessageSourceAccessor(); String msg = ""; // expire the selected alerts String[] alertIds = request.getParameterValues("alertId"); if (alertIds != null) { for (String alertIdString : alertIds) { Integer alertId = Integer.parseInt(alertIdString); Alert a = as.getAlert(alertId); a.setDatetoExpire(new Date()); as.saveAlert(a); } msg = msa.getMessage("Alert.expired",new Object[] { alertIds.length },locale); } else { msg = msa.getMessage("Alert.select"); } httpSession.setAttribute(WebConstants.OPENMRS_MSG_ATTR,msg); return new ModelAndView(new RedirectView(getSuccessView())); } // The user isn't authenticated or their session has expired return showForm(request,errors); }
/** * Populate search messages. * * @param searchInfo the search info */ private void populateSearchMessages(SessionSearchInfo searchInfo) { MessageSourceAccessor msa = getMessageSourceAccessor(); searchInfo.getErrorMessages().clear(); if (searchInfo.isEmpty()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.empty")); } else if (searchInfo.isValid()) { searchInfo.setInfoMessage(msa.getMessage("probe.src.sessions.search.results.empty")); } else { if (!searchInfo.isSessionIdValid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.sessionId",new Object[] {searchInfo.getSessionIdMsg()})); } if (!searchInfo.isAttrNameValid()) { for (String message : searchInfo.getAttrNameMsgs()) { searchInfo.addErrorMessage( msa.getMessage("probe.src.sessions.search.invalid.attrName",new Object[] {message})); } } if (!searchInfo.isAgeFromValid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.ageFrom")); } if (!searchInfo.isAgeTovalid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.ageto")); } if (!searchInfo.isIdleTimeFromValid()) { searchInfo .addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.idleTimeFrom")); } if (!searchInfo.isIdleTimeTovalid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.idleTimeto")); } if (searchInfo.getErrorMessages().isEmpty()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid")); } } }
/** * Execute the action using the given context. * * @param context The current context * @param configuration The configuration * @throws Exception Any error */ public void execute(JPublishContext context,Configuration configuration) throws Exception { HttpServletRequest request = (HttpServletRequest) context.get("request"); HttpServletResponse response = (HttpServletResponse) context.get("response"); Page page = ((Page) context.get("page")); if (page != null) { Locale locale = page.getLocale(); ApplicationContext applicationContext = getApplicationContext(context); context.put(SPRING,applicationContext); handlerinterceptor localeChangeInterceptor = (handlerinterceptor) applicationContext.getBean("localeChangeInterceptor"); if (localeChangeInterceptor != null) { try { LocaleResolver localeResolver = (LocaleResolver) applicationContext.getBean("localeResolver"); if (localeResolver != null) { request.setAttribute(dispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE,localeResolver); localeChangeInterceptor.preHandle(request,null); locale = localeResolver.resolveLocale(request); MessageSource messageSource = (MessageSource) applicationContext.getBean("messageSource"); if (messageSource != null) { context.put(I18N,new MessageSourceAccessor(messageSource,locale)); } else { log.error("There is no 'messageSource' defined in your application context." + " Please define one."); } } else { log.error("please define a 'localeResolver' bean in your Application context"); } } catch (Exception e) { e.printstacktrace(); log.error("Cannot handle the locale change event"); } } page.setLocale(locale); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
public GroupFetchController(GroupFetchbroker groupFetchbroker,JwtService jwtService,UserManagementService userManagementService,PdfGeneratingService generatingService,MemberDataExportbroker memberDataExportbroker,UrlShortener urlShortener,Groupbroker groupbroker) { super(jwtService,userManagementService); this.groupFetchbroker = groupFetchbroker; this.generatingService = generatingService; this.memberDataExportbroker = memberDataExportbroker; this.urlShortener = urlShortener; this.messageSourceAccessor = messageSourceAccessor; this.groupbroker = groupbroker; }
public UserController(MediaFilebroker mediaFilebroker,Storagebroker storagebroker,UserManagementService userService,PasswordTokenService passwordService,MessagingServicebroker messagingbroker,@Qualifier("messageSourceAccessor") MessageSourceAccessor messageSource) { super(jwtService,userService); this.mediaFilebroker = mediaFilebroker; this.storagebroker = storagebroker; this.userService = userService; this.passwordService = passwordService; this.messagingbroker = messagingbroker; this.messageSource = messageSource; }
public PermissionDTO(Permission permission,Group group,String roleName,Set<Permission> enabledSet,MessageSourceAccessor messageSourceAccessor) { this.permission = permission; this.groupUid = group.getUid(); this.forRole = roleName; this.permissionName = permission.getName(); this.permissionLabel = messageSourceAccessor.getMessage("rest.permission." + permission.getName(),Locale.getDefault()); this.permissionDesc = messageSourceAccessor.getMessage("rest.permission.desc." + permission.getName(),Locale.getDefault()); this.permissionEnabled = enabledSet.contains(permission); this.position = displayedPermissionsSorted.get(permission); }
@Autowired public LiveWireSendingbrokerImpl(LiveWireAlertRepository alertRepository,DataSubscriberRepository subscriberRepository,LiveWirePushbroker liveWirePushbroker,@Qualifier("servicesMessageSourceAccessor") MessageSourceAccessor messageSource,@Qualifier("emailTemplateEngine") TemplateEngine templateEngine,Storagebroker storagebroker) { this.alertRepository = alertRepository; this.subscriberRepository = subscriberRepository; this.liveWirePushbroker = liveWirePushbroker; this.messageSource = messageSource; this.templateEngine = templateEngine; this.storagebroker = storagebroker; }
@Bean public MessageSourceAccessor messageSourceAccessor() throws Exception{ MessageSourceAccessor bean = new MessageSourceAccessor(messageSource(),environment.getProperty( "springfield.baseLocale",Locale.class,Locale.KOREA ) ); return bean; }
@Bean public MessageSourceAccessor messageSourceAccessor() throws Exception{ MessageSourceAccessor bean = new MessageSourceAccessor(messageSource(),StringUtils.parseLocaleString(configurer.getProperty(Configurer.BASE_LOCALE)) ); return bean; }
/** * Initialize this JAX-RPC servlet endpoint. * Calls onInit after successful context initialization. * @param context ServletEndpointContext * @throws ServiceException if the context is not a ServletEndpointContext * @see #onInit */ public final void init(Object context) throws ServiceException { if (!(context instanceof ServletEndpointContext)) { throw new ServiceException("ServletEndpointSupport needs ServletEndpointContext,not [" + context + "]"); } this.servletEndpointContext = (ServletEndpointContext) context; ServletContext servletContext = this.servletEndpointContext.getServletContext(); this.webApplicationContext = WebApplicationContextUtils.getrequiredWebApplicationContext(servletContext); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); }
/** * This implementation delegates to {@code doPerform},* lazy-initializing the application context reference if necessary. * <p>This is the preferred execution method in Struts 1.2. * When running with Struts 1.1,it will be called by {@code perform}. * @see #perform * @see #doPerform */ @Override public final void execute( ComponentContext componentContext,HttpServletRequest request,ServletContext servletContext) throws Exception { synchronized (this) { if (this.webApplicationContext == null) { this.webApplicationContext = RequestContextUtils.getWebApplicationContext(request,servletContext); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); } } doPerform(componentContext,request,response); }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * Initialize the WebApplicationContext for this Action. * Invokes onInit after successful initialization of the context. * @see #initWebApplicationContext * @see #onInit */ @Override public void setServlet(ActionServlet actionServlet) { super.setServlet(actionServlet); if (actionServlet != null) { this.webApplicationContext = initWebApplicationContext(actionServlet); this.messageSourceAccessor = new MessageSourceAccessor(this.webApplicationContext); onInit(); } else { onDestroy(); } }
/** * @param messageSource */ public MessageSourceMessageResolverAdapter(MessageSource messageSource) { if (messageSource == null) { throw new NullPointerException("MessageSource can't be null"); } this.messageSourceAccessor = new MessageSourceAccessor(messageSource); }
private void populateSearchMessages(SessionSearchInfo searchInfo) { MessageSourceAccessor msa = getMessageSourceAccessor(); searchInfo.getErrorMessages().clear(); if (searchInfo.isEmpty()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.empty")); } else if (searchInfo.isValid()) { searchInfo.setInfoMessage(msa.getMessage("probe.src.sessions.search.results.empty")); } else { if (!searchInfo.isSessionIdValid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.sessionId",new Object[] {searchInfo.getSessionIdMsg()})); } if (!searchInfo.isAttrNameValid()) { for (Iterator i = searchInfo.getAttrNameMsgs().iterator(); i.hasNext();) { String m = (String) i.next(); searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.attrName",new Object[] {m})); } } if (!searchInfo.isAgeFromValid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.ageFrom")); } if (!searchInfo.isAgeTovalid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.ageto")); } if (!searchInfo.isIdleTimeFromValid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.idleTimeFrom")); } if (!searchInfo.isIdleTimeTovalid()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid.idleTimeto")); } if (searchInfo.getErrorMessages().isEmpty()) { searchInfo.addErrorMessage(msa.getMessage("probe.src.sessions.search.invalid")); } } }
protected AbstractListBinding createListBinding(JComponent control,FormModel formModel,String formPropertyPath) { ComboBoxBinding binding = (ComboBoxBinding) super.createListBinding(control,formModel,formPropertyPath); binding.setSelectableItems(createEnumSelectableItems(formModel,formPropertyPath)); MessageSourceAccessor messageSourceAccessor = getMessages(); binding.setRenderer(new EnumListRenderer(messageSourceAccessor)); binding.setEditor(new EnumComboBoxEditor(messageSourceAccessor,binding.getEditor())); return binding; }
public void setMessageSource(MessageSource messages) { if (messages != null) { this.messages = new MessageSourceAccessor(messages); createColumnInfo(); } else { this.messages = null; } }
public void testGetTableCellRendererComponent() { StaticmessageSource messageSource = new StaticmessageSource(); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.ONE","one"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.TWO","two"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.THREE","three"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.FOUR","four"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.FIVE","five"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.SIX","six"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.SEVEN","seven"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.EIGHT","eight"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.NINE","nine"); messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.TEN","ten"); MessageSourceAccessor msa = new MessageSourceAccessor(messageSource); tetcr = new EnumTableCellRenderer(msa); Object[][] rowData = { { Numbers.ONE },{ Numbers.TWO },{ Numbers.THREE },{ Numbers.FOUR },{ Numbers.FIVE },{ Numbers.SIX },{ Numbers.SEVEN },{ Numbers.EIGHT },{ Numbers.NINE },{ Numbers.TEN } }; Object[] columnNames = { "Numbers" }; JTable table = new JTable(rowData,columnNames); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(0).setCellRenderer(tetcr); tetcr.getTableCellRendererComponent(table,Numbers.SEVEN,false,6,0); Component component = tetcr.getTableCellRendererComponent(table,0); assertTrue(component instanceof EnumTableCellRenderer); }
关于自定义Spring Boot入门程序:如何将i18n消息贡献给MessageSource?和springboot自定义消息转换器的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于java – 在Spring MVC框架中不使用MessageSourceAware访问MessageSource的方法、java-假设Spring MessageSource实现是线程安全的吗?、Java——Struts2 之国际化 struts.custom.i18n.resources=globalMessages、org.springframework.context.support.MessageSourceAccessor的实例源码等相关内容,可以在本站寻找。
本文标签: