当前位置: 首页 > 知识库问答 >
问题:

Spring中占位符的国际化

蔡修远
2023-03-14

我找不到一种方法来国际化占位符中的文本,就像我对常规文本所做的那样。我想把我的国际化放在:

输入类型=“Text”class=“Form-Control”name=“s”placeholder=“CtrlPanel.Search.placeholder”

CtrlPanel.Search.PlaceHolder=搜索爱好

现在,在我的JSP中,我包含了标记

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

<c:set var="contextRoot" value="${pageContext.request.contextPath}" />   
<c:url var="search" value="/search" />


<hr/>
<div class="row">
	<div class="col-md-8 col-md-offset-2">
		<form action="${search}" method="post">
			<input type="hidden" name="${_csrf.parameterName}"
				value="${_csrf.token}" />
			<div class="input-group input-group-lg">
				<input type="text" class="form-control" name="s" placeHolder="Search Hobbies">
				<span class="input-group-btn">
					<button id="search-button" class="btn btn-primary" type="submit">
					<spring:message code="ctrlpanel.find.button" text="default text" />
					</button>
				</span>			
			</div>
		</form>
	</div>
</div>

我的配置工作正常:

package com.caveofprogramming.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import java.util.Locale;


@Configuration
public class SpringMvcConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public LocaleResolver localeResolver(){
        SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
        sessionLocaleResolver.setDefaultLocale(new Locale("es", "ES"));
        //sessionLocaleResolver.setDefaultLocale(Locale.US);
        return sessionLocaleResolver;
    }

    @Bean
    LocaleChangeInterceptor localeChangeInterceptor(){
        LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
        localeChangeInterceptor.setParamName("lang");
        return localeChangeInterceptor;
    }

    @Override
    public void addInterceptors(InterceptorRegistry interceptorRegistry){
        interceptorRegistry.addInterceptor(localeChangeInterceptor());
    }
}

因为这不起作用。

<input type="text" class="form-control" name="s" placeHolder="<spring:message code="ctrlpanel.search.placeholder"/>">

共有1个答案

葛言
2023-03-14

使用spring:message的var属性,该属性在将结果绑定到页面、请求、会话或应用程序范围时使用。

<spring:message code="ctrlpanel.search.placeholder" var="searchPlaceholder"/>

然后像这样更新输入字段:

<input type="text" class="form-control" name="s" placeHolder="${searchPlaceholder}">
 类似资料:
  • 本实例通过设置不同的占位符格式来测试MessageFormat对象对这些带占位符的国际化资源信息的格式化效果。在本例中测试了对字符串、数字、百分数以及日期类型的格式化。 例子 : 格式化带占位符的国际化资源信息 1. 向资源文件中添加资源信息 在MyResource_zh.properties文件中添加如下的信息: pattern = 你好,{0}, 现在的时间是{1, time, long}.

  • 我正在做一个小项目,当我在Spring尝试实现i18n时,它不起作用,即使我尝试更改默认语言,它也不起作用。这是我的spring servlet。XML代码 我有4条消息。类路径消息中的属性。属性,消息。properties,messages\u fr.properties,messages\u de.properties默认语言不会始终更改其使用messages\u en。属性(如果删除邮件)。

  • 问题内容: 看来这是一个众所周知的问题,但是我在Google上找到的所有解决方案都不适用于我新下载的IE9。 启用and 标签上的属性的最喜欢的方式是哪种? 可选:我为此花了很多时间,而且还没有去寻找房产。您对此还有意见吗?显然,我可以检查PHP中的值,但是对于帮助用户使用此属性非常方便。 问题答案: HTML5占位符jQuery插件 -通过的Mathias Bynens上协作者HTML5样板和j

  • 我有一个使用占位符的Thymeleaf模板,其中占位符属性指定一个简短提示,描述输入字段的预期值或格式。 占位符在输入文本为空时工作。但是,如果需要编辑包含以前输入的数据的字段,则以前输入的文本将消失,并在输入收到焦点时替换为占位符文本。 有没有办法避免这种情况? 胸腺叶模板 以及生成的HTML

  • 我不明白为什么不能在Spring-Boot中向application.properties文件中注入值。外部属性添加到logging.file变量中。我有一个application.properties文件,看起来如下所示 具有相应的Spring-boot应用程序类 请注意,如果我自己注入服务器端口号,那么在注入和启动应用程序时没有任何问题。 我在这个问题上兜圈子,弄不清自己做错了什么。

  • 类型 Glide允许用户指定三种不同类型的占位符,分别在三种不同场景使用: placeholder error fallback 占位符(Placeholder) 占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。如果请求失败并且没有设置 error Drawable ,则占位符将