【发布时间】:2017-10-25 03:30:05
【问题描述】:
春季新品!我正在尝试动态翻译像 Gender 这样的枚举,但我不知道如何。假设我有一个性别对象......
公共枚举性别{ 女性, 男性; }
我有一个控制器,它会用它来填充一个jsp,就像这样......
@RequestMapping(value = "/edit-profile-about3", method = RequestMethod.GET)
public ModelAndView editProfileAbout3(ModelAndView modelAndView) {
SiteUser user = getUser();
Profile profile = profileService.getUserProfile(user);
Profile webProfile = new Profile();
webProfile.safeCopyFrom(profile);
List<Gender> gender = new ArrayList<Gender>(EnumSet.allOf(Gender.class));
modelAndView.getModel().put("gender", gender);
modelAndView.setViewName("app.editprofileabout3");
return modelAndView;
}
现在我不想在我的 JSP 中显示值 MALE 和 FEMALE 大写,就像它们从枚举中显示的那样,而是像英语中的男性和女性或西班牙语中的 Hombre 和 Mujer 一样::: p>
<form:form modelAttribute="profile" class="sky-form" id="sky-form4">
<dl class="dl-horizontal">
<dt>Gender:</dt>
<dd>
<form:radiobuttons path="gender" items="${gender}" />
</dd>
</dl>
<button class="btn-u btn-u-default" type="button" value="Cancel">Cancelar</button>
<button class="btn-u" type="submit" name="submit" value="Save">Guardar</button>
</form:form>`
我该怎么做?我认为这不是属性国际化,因为 jsp 使用 MALE FEMALE 动态收取表单:radiobuttons path="gender" items="${gender}" 并且我希望在它到达 JSP 之前将其翻译(换句话说, 我不能使用属性同时翻译两个枚举,对吧?当我得到我的 POST 控制器的答案时,我想得到 MALE、FEMALE,但可能是 show Hombre、Mujer(翻译)。 谢谢
【问题讨论】:
-
也就是说,你需要将 Spring MVC 应用程序国际化。以下是其中一个示例:mkyong.com/spring-mvc/spring-mvc-internationalization-example
-
你确定吗?使用 form:radiobuttons path="gender" items="${gender}" 时可以翻译所有枚举吗?谢谢
-
JSP 正在服务器端呈现,在此过程中,可以从属性中获取翻译,以将已翻译项目的页面返回给用户。
-
怎么样?我有这个表格:radiobuttons path="gender" items="${gender}。按照你的例子......我应该使用 items="welcome.springmvc.gender.male" 和 items="welcome.springmvc.gender。女性”?放两行,每个枚举一个
标签: java jsp spring-mvc internationalization