我正在学习Struts 2国际化和语言环境。
页面在浏览器中始终显示login.user
,login.password
和login.submit
。
我要显示的文本是英语或简体中文,例如User
,Password
,Login
,而不是login.user
等。
index.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Internationalization</title>
</head>
<body>
<%--user select language page--%>
<s:url var="loginCN" action="changeLocale" namespace="/">
<s:param name="language">cn</s:param>
</s:url>
<s:url var="loginEN" action="changeLocale" namespace="/">
<s:param name="language">en</s:param>
</s:url>
<a href="<s:property value="#loginCN" />">简体中文</a>
<a href="<s:property value="#loginEN" /> ">English</a>
<%--input form data--%>
<form action="login" method="post">
<s:text name="login.user" />
<input type="text" name="username"/><br/>
<s:text name="login.password" />
<input type="text" name="password" /><br/>
<input type="submit" value="<s:text name="login.submit" />" />
<!--output validation information-->
<p><s:fielderror fieldName="username" /></p>
</form>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="viewResources.global" />
<package name="default" namespace="/" extends="struts-default">
<action name="changeLocale" class="web.struts.action.ChangeLocaleAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="global.success">Success</entry>
<entry key="login.password">Password</entry>
<entry key="login.submit">Login</entry>
<entry key="login.user">User</entry>
</properties>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="global.success">Success</entry>
<entry key="login.password">Password</entry>
<entry key="login.submit">Login</entry>
<entry key="login.user">User</entry>
</properties>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="global.success">成功</entry>
<entry key="login.password">密码</entry>
<entry key="login.submit">登录</entry>
<entry key="login.user">用户</entry>
</properties>
答案 0 :(得分:0)
好的,我已经解决了问题。
首先,该错误取决于“ global.xml”,“ global_zh_CN.xml”和“ global_en_US.xml”文件。
第二,资源束文件的位置错误。
我使用全球国际化资源,相关文件(xxx.properties)应该放在src中,例如src / xxx.properties。
最重要的是“ .xml”。在IntelliJ IDEA中创建资源包时,我们不应选中“使用基于XML的属性文件”复选框。这是解决问题的关键。