首页 新闻 会员 周边 捐助

struts2项目的国际化出问题了,怎么解决呀?

0
悬赏园豆:5 [已关闭问题] 关闭于 2022-06-04 15:02

我们已经指定了资源文件的包路径,如下图所示:

并且将globalMessages_en.properties和globalMessages_zh.properties,存放在指定的包路径下。但是运行项目时并没有起到作用呀,在中文环境下并没有获取到中文的数据。

感觉属性文件不能放在某个包下面吧,因为构建项目的时候,根本就没有编译输出属性文件到目录classes下面呀。。

项目结构:

LoginAction:

package priv.lwx.struts2.i18n.web;

import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
  @Override
  public String execute() {
    // 方法getText()继承自父类ActionSupport,用来解析资源文件,获取指定key所对应的值
    String str = getText("firstname");
    System.out.println(str);
    return "success";
  }

}

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!-- 是否启用开发模式 -->
    <constant name="struts.devMode" value="true"/>
    <constant name="struts.custom.i18n.resources" value="priv.lwx.struts2.i18n.web.globalMessages"/>
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <package name="struts2-tag" extends="struts-default" namespace="">
        <!-- http://localhost:8080/si/login.action -->
        <action name="login" class="priv.lwx.struts2.i18n.web.LoginAction">
            <result name="success">
                /login.jsp
            </result>
        </action>
    </package>
</struts>

中文的资源文件内容:

firstname=firstname
lastname=lastname
age=age

英文的资源文件内容:

firstname=姓
lastname=名字
age=年龄

login.jsp:


<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<s:form action="login" method="post">
    <s:textfield name="firstname" label="%{getText('firstname')}"/>
    <s:textfield name="lastname" label="%{getText('lastname')}"/>
    <s:textfield name="age" label="%{getText('age')}"/>
    <s:submit/>
</s:form>
</body>
</html>
liaowenxiong的主页 liaowenxiong | 初学一级 | 园豆:33
提问于:2022-05-24 17:06
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册