`

从数据库中获取国际化资源文件的key,然后通过Struts2的标签显示

 
阅读更多

首先在mySql数据库中建立表:

/*
SQLyog Community v8.71 
MySQL - 5.1.53-community 
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;

create table `Resource` (
	`id` int (10),
	`key` varchar (300),
	`remark` varchar (300)
); 
insert into `Resource` (`id`, `key`, `remark`) values('100','student.name','no remark');
insert into `Resource` (`id`, `key`, `remark`) values('101','student.address','no remark');
insert into `Resource` (`id`, `key`, `remark`) values('102','student.age','no remark');
insert into `Resource` (`id`, `key`, `remark`) values('103','student.sex','no remark');
insert into `Resource` (`id`, `key`, `remark`) values('104','student.phone','no remark');

 

 

 

然后,建立Connection连接,写一个连接类:

 

package pack.java.connection.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * 数据库连接类;
 * @author Administrator
 *
 */
public class BaseConnection {
	private final String USERNAME = "root";
	private final String PASSWORD = "mysql";
	private final String URL = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8";
	private final String DRIVER = "com.mysql.jdbc.Driver";
	
	/**
	 * 获取Connection连接;
	 * @return
	 */
	private Connection getConnection(){
		Connection connection = null;
		try {
			Class.forName(DRIVER);
			connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("驱动不存在!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return connection;
	}
	
	/**
	 * 获取PreparedStatement;
	 * @return
	 */
	private PreparedStatement getPreparedStatement(String sql){
		Connection connection  = getConnection();
		PreparedStatement preparedStatement = null;
		try {
			preparedStatement = connection.prepareStatement(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return preparedStatement;
	}
	
	public ResultSet getResultSet(String sql){
		PreparedStatement preparedStatement = getPreparedStatement(sql);
		ResultSet resultSet  = null;
		try {
			resultSet =  preparedStatement.executeQuery();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("查询出错!");
		}
		return resultSet;
	}
}

 

 

首先定义一个JavaBean ,ResourceVO类,用来映射数据库的字段.

之后,就是通过,调用BaseConnection中的一个getResultSet方法返回ResultSet拼成成一个List<ResourceVO>集合;

这个过程就不说了,篇幅太长了.

 

然后,在Action中就调用方法,得到一个List<ResourceVO>集合;并且提供getter,setter方法.

package pack.java.file.upload.action;

import java.util.List;
import pack.java.service.ResourceService;
import pack.java.service.ResourceServiceImpl;
import pack.java.vo.ResourceVO;
import com.opensymphony.xwork2.ActionSupport;
/**
 * Resource Action 
 * @author Administrator
 *
 */
public class ResourceAction extends ActionSupport{

	private static final long serialVersionUID = -4190531063573107186L;
	private ResourceService resourceService = new ResourceServiceImpl();
	
	private List<ResourceVO> resourceVOList;
	public List<ResourceVO> getResourceVOList() {
		return resourceVOList;
	}
	public void setResourceVOList(List<ResourceVO> resourceVOList) {
		this.resourceVOList = resourceVOList;
	}
	
	/**
	 * 显示所有的资源文件集合;
	 * @return
	 */
	public String displayResourceVO(){
		this.resourceVOList  = resourceService.getResourceVOAll();
		System.out.println("resourceVOList 集合大小:"+resourceVOList.size()); 
		return SUCCESS;
	}
	
}

 

 

 

定义一个displayResource.jsp页面用于显示.资源国际化.

<table width="80%" align="center" cellpadding="0" cellspacing="1" style="border:0px solid blue">
		<tr>
			<th>编号</th>
			<th>资源名称</th>
			<th>备注</th>
		</tr>
		
		<s:iterator id="resource" status="stat" value="#request.resourceVOList">
			<tr>
				<td><s:property value="#resource.id"></s:property></td>
				<td>
					<!-- 显示从数据库配置好的key -->
					<s:property value="%{getText(#resource.key)}"/>
				</td>
				<td><s:property value="#resource.remark"/></td>
			</tr>
		</s:iterator>
	</table>

 

 

配置struts.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "//struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
	<package name="pack.java.file.upload.action" extends="struts-default">
		<!-- resource Action -->
		<action name="resourceAction" class="pack.java.file.upload.action.ResourceAction">
			<result>/displayResource.jsp</result>
		</action>
	</package>
</struts>

 

配置web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>Struts2Upload</display-name>
	
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 

 

最后在新建一个struts.properties配置文件放入src的目录下:

加入:

struts.custom.i18n.resources=globalMessages

 

然后再加入一个globalMessages_en_US.properties文件.

配置:

student.name = Name
student.address = Address
student.age = Age
student.sex = Sex
student.phone = Phone

 

即可.

 

启动服务器:运行 http://localhost:8008/Struts2ResourceDemo/displayResource.jsp

分享到:
评论

相关推荐

    Struts数据源连接和国际化

    3. **在Action类中获取数据源**:通过`getDataSource`方法可以从请求对象中获取之前定义的数据源。 ```java DataSource ds = getDataSource(request, "UserDS"); ``` 4. **处理常见问题**:如果遇到连接失败的...

    struts2 做的国际化的例子

    然后,我们可以在JSP页面中使用Struts2标签库显示国际化消息: ```jsp &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; &lt;fmt:message key="greeting"/&gt;&lt;!-- 引用messages.properties中的键 --&gt; ``` Spring框架在这个...

    struts2 国际化

    例如,`getText(key)`方法用于获取资源文件中的值。 4. **JSP页面显示**: 在JSP页面中,可以使用`&lt;s:text&gt;`标签结合`name`属性来展示国际化消息。 5. **处理用户选择的语言**: 用户可以通过URL参数(如`?lang=en_...

    struts 国际化

    在Struts中,国际化主要通过资源文件(通常称为`.properties`文件)来实现,这些文件包含了应用中的所有可本地化的文本。例如,`Messages.properties`是默认的语言版本(通常是英文),`Messages_zh_CN.properties`...

    struts购物车功能-语言国际化

    在Action中,我们可以使用`getText()`方法来获取资源文件中的字符串。 在`cart.jsp`视图页面中,我们可以使用Struts2的标签库来展示这些本地化文本,如`&lt;s:text name="key"/&gt;`,这里的`key`是.properties文件中的键...

    java web应用国际化与分页

    在JSP页面中,Struts的标签库允许开发者通过指定的键从相应的资源文件中动态获取文本,从而实现多语言显示。例如,`&lt;fmt:message key="messageKey"/&gt;`标签可以从资源文件中获取消息,其中`messageKey`是资源文件中...

    Struts2+MySQL登录注册

    在Struts2中,我们可以使用s:form、s:textfield等标签来创建表单,s:submit标签用于提交表单。此外,我们还需要创建对应的错误提示页面,如login_error.jsp、register_error.jsp,用于显示验证失败的信息。 配置是...

    java实现国际化源码

    在Java开发中,实现国际化(i18n)是一项重要的任务,它允许应用程序根据用户的语言和地区提供相应的本地化内容。本篇文章将详细讲解如何利用Java技术,特别是Struts框架,来实现这一功能。 首先,我们需要了解Java...

    struts_i18n1_login

    在JSP页面中,我们可以使用`&lt;bean:message&gt;`标签来获取资源包中的文本。比如,显示登录按钮的标签可能是: ```jsp &lt;input type="submit" value="&lt;bean:message key='login.submit'/&gt;" /&gt; ``` `key='login....

    sturts国际化的一个简单的示例

    总结来说,Struts国际化的实现涉及资源文件的创建、配置Struts配置文件、在ActionForm和JSP中使用资源键,以及处理locale信息。结合Hibernate,可以进一步完善多语言支持,使应用具备全球化的能力。这个简单的示例为...

    servlet和struts2笔记

    - **初始化 (`init()`)**:在 Servlet 第一次被加载到内存中时调用,通常用于执行一次性的设置任务,比如加载配置文件或数据库连接等。 - **服务 (`service()`)**:每当客户端向服务器发送一个请求时,就会调用此...

    Struts网站计数器

    通过Struts标签库,我们可以从ActionContext中获取计数器的值并显示出来: ```jsp &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 网站计数器 网站已访问次数:...

    struts Key Technologies Primer.pdf

    属性文件(Properties Files)和资源束(Resource Bundles)用于管理本地化信息,如消息、文本等。它们通过键值对的方式存储信息,支持国际化和本地化。 多线程(Threads)是Java语言的一个重要概念,它允许在单个...

    SSH整合,里面有将数据库元数据查出来。

    标签“取数据库资源”可能指的是获取数据库中的数据或元数据。在SSH整合中,除了查询元数据,我们还可以使用Hibernate的Query或Criteria API执行SQL查询,获取实际的数据行。 总的来说,SSH整合提供了一种高效且...

    关于用Dreamweaver连数据库mysql的问题参考.pdf

    可以在 eclipse 中运行 jsp 文件,查看从 MySQL 数据库读取的数据。 知识点 * 使用 Dreamweaver 连接 MySQL 数据库需要安装驱动程序 mysql-connector-java-5.1.6-bin.jar。 * 在 MySQL 数据库中建立表时,需要指定...

    SSH框架面试题

    6. **在JSP中使用资源文件**:通过Struts的`bean:message`标签来引用资源文件中的键值。例如: ```jsp &lt;bean:message key="label.welcome.china"/&gt; ``` #### 六、Struts 2.0 中常用标签 **1. 表单输入标签**:...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    struts+spring+hibernate资料

    - **初始化 ActionServlet**:在 Web 应用启动时加载,并从 `struts-config.xml` 文件中读取配置信息。 - **处理请求**:当 ActionServlet 接收到客户端请求时,根据请求路径查找相应的 ActionMapping。 - **创建 ...

    ActionForm里的get和set方法

    通过在ActionForm中定义资源键(resource key),并在页面上使用相应的标签,可以实现表单字段的多语言显示。get方法返回的值将与资源文件中对应的键匹配,实现动态显示不同语言的文本。 5. **ActionForm的生命周期...

    springTest

    【SpringTest】是一个针对初学者的教程,主要涵盖了在Spring框架中从配置文件获取值并输出到控制台的基础知识。Spring作为Java企业级应用开发的重要框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、MVC...

Global site tag (gtag.js) - Google Analytics