`
congpeixue
  • 浏览: 274639 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

关于Struts2 的CRUD(并涉及页面,数据库,服务器端的乱码解决)

阅读更多
数据库采用mysql, (Navicat MySQL作为mysql的UIhttp://www.w2blog.net/view/142.html
服務器采用tomcat6.0,
IDE使用Europa ,
使用dbutil(http://commons.apache.org/dbutils/)作为操作数据库辅助的jar。

1. 国际化问题
   所有代码都使用utf-8(在europa中如下设置jsp、js 、 properties的编码格式)


  所有jsp页面
   <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>(JSP编译器在将JSP文件编译成Servlet时使用的编码)

   <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
(重新认定编码方式)

  tomcat的server.xml
    <Connector port="8080" 
	      URIEncoding="UTF-8" 
	       protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
			   />



(注意要重新建europa的javaee的tomcat server;否则europa会保留第一次设置的值)

     数据库编码

   确保mysql安装时选择的编码为utf8,可以通过如下方式确认。(
my.ini)

[client]

port=3306

[mysql]

default-character-set=utf8



  连接代码 
&useUnicode=true&characterEncoding=utf-8


2、struts2的配置文件

package.properties
User.name = 用户名
User.pwd = 用户密码
User.description = 用户详细信息
##############################
User.submit = 登录
User.create = 注册
User.update = 提交
User.reset = 重置
User.edit = 修改注册信息
User.logout = 退出登录
User.delete = 删除用户
User.selectAll = 查询全部


键值对就是为了实现国际化(package.properties可以有多种命名方法,看你的具体业务需要了,我只是写个例子)

在jsp中调用:   <s:properties value="%getText('User.name')"/>
在java source中调用:  String name = getText("User.name")

UserAction-user_create-validation.xml


<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
    <field name="name">
        <field-validator type="requiredstring">
            <message><![CDATA[ 用户名不能为空 ]]></message>
        </field-validator>
    </field>
    <field name="pwd">
        <field-validator type="requiredstring">
            <message key="requiredstring"/>
        </field-validator>
    </field>
</validators>



文件名格式为 className-actionalias-validation.xml


关于标签

<s:iterator value="userList">
........
</s:iterator>







关于action的别名

xml配置文件:

		<action name="user_*" method="{1}" class="example.UserAction">
			<result name="input">
				/example/user_create.jsp
			</result>
			<result name="create_success">
				/example/user_create_success.jsp
			</result>
			<result name="editInit">
				/example/user_edit.jsp
			</result>
			<result name="selectAll">
				/example/user_selectAll.jsp
			</result>
			<result name="delete_success">
				/example/user_create_success.jsp
			</result>
			<result name="create">
				/example/user_create.jsp
			</result>
		</action>


java代码中:

	public String select() throws Exception {

		// 查询SQL
		String USER_SELECT = "SELECT u.NAME, u.PWD, u.DESCRIPTION FROM USER u";
		ResultSetHandler rsh = new ResultSetHandler() {
			public Object handle(ResultSet rs) throws SQLException {
				List<User> userListTemp = new ArrayList<User>();
				/*
				 * select
				 */

。。。。。。。。。。。。。。。。。。。。

	public String createInit() throws Exception {
		return "create";
	}


jsp代码中:

					<td>
						<s:url action="user_editInit" id="user_edit">
							<s:param name="name" value="name"></s:param>
						</s:url>
						<s:a href="%{user_edit}"><s:text name="%{getText('User.edit')}"/></s:a>
						<s:url action="user_delete" id="user_delete">
							<s:param name="name" value="name"></s:param>
						</s:url>
						<s:a href="%{user_delete}"><s:text name="%{getText('User.delete')}"/></s:a>
						<hr>
					</td>	



从action的命名及java source的方法名中, 相信大家已经看出规律来了。

附:
sql
引用

/*
MySQL Data Transfer
Source Host: localhost
Source Database: webapp
Target Host: localhost
Target Database: webapp
Date: 2008-7-9 下午 11:31:33
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
CREATE TABLE `user` (
  `id` int(8) NOT NULL auto_increment,
  `name` varchar(45) NOT NULL,
  `pwd` varchar(45) NOT NULL,
  `description` varchar(245) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `user` VALUES ('42', '1', '1', '1');
INSERT INTO `user` VALUES ('43', '11', '11', '11');


其他地方感觉也没什么可说的啦, (其实上面每一点要深入下去, 都能写成一篇, 我只是草草说下,抛砖引玉了)我把源码贴上, 如果需要jar文件, 可以congpeixue@126.com


后面有时间我会对这个例子再完善一下。。。。
  • 大小: 23.9 KB
分享到:
评论
5 楼 taotiede 2008-07-15  
学习中。。。。
4 楼 congpeixue 2008-07-14  
UTF-8是比GBK多占用了成倍的空间

你的网站访客没有什么国外用户, 就用GBK吧 ~

3 楼 laorer 2008-07-14  
DB用utf-8的话,如果数据量多的话,会不会造成空间使用量比较大
??
2 楼 beikechen 2008-07-11  
很久没写代码了,下下来 回顾回顾!
1 楼 lxfei0311 2008-07-10  
thanks very much

相关推荐

    struts2CRUD

    Struts2 CRUD是一个基于Apache Struts2框架实现的创建、读取、更新和删除(Create, Read, Update, Delete)操作的示例项目。这个项目主要用于演示如何在Web应用程序中使用Struts2来处理基本的数据操作。Struts2是...

    struts2 CRUD

    Struts2 CRUD是一个典型的Java Web开发中的概念,它涉及到Model-View-Controller(MVC)设计模式的应用,以及使用Struts2框架实现对单一数据库表的创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)功能。...

    基于struts的CRUD

    总结,基于Struts的CRUD实现涉及了Struts框架的核心使用、Spring框架的集成以优化控制层和事务管理、MySQL数据库的连接和操作,以及MVC架构和页面导航的实现。通过这些技术,开发者可以构建出稳定、可扩展且易于维护...

    Java Struts2 实现CRUD

    Struts2是Java Web开发中一个非常流行的MVC框架,它极大地简化了Web应用程序的构建,特别是对于实现CRUD(创建、读取、更新、删除)操作。在本篇文章中,我们将深入探讨如何使用Java Struts2框架来完成这些基本的...

    struts2CRUD-2

    Struts2 CRUD-2 是一个基于Struts2框架实现的简单数据操作示例,主要涵盖了创建(Create)、读取(Read)、更新(Update)和删除(Delete)这四个数据库操作的基本功能。Struts2是一个非常流行的Java Web开发框架,...

    Struts实现CRUD操作

    在本教程中,我们将探讨如何利用Struts实现CRUD(创建、读取、更新和删除)操作,这是一些基本但至关重要的数据库交互功能。 首先,理解Struts框架的核心组件至关重要。ActionServlet是Struts的入口点,它处理HTTP...

    struts_crud

    Struts提供了两种验证方式:客户端验证(JavaScript)和服务器端验证(在Action类中或者通过Validator插件)。 7. **国际化和本地化**:在开发CRUD应用时,通常需要支持多语言环境。Struts支持资源文件,可以在其中...

    struts2-crud.zip_DEMO_Java web CRUD demo_struts2 CRUD_struts2 de

    Struts2可以通过Action查询数据库,然后将结果传给JSP页面展示。 3. **更新(Update)**:用户编辑数据后提交,Action接收更新请求,更新数据库中的记录,然后返回一个确认更新结果的页面。 4. **删除(Delete)**:...

    strutsCRUD1.rar_crud struts_struts1 crud_strutsCRUD1

    2. **strutsCRUD**:这是一个目录,可能包含了项目的源代码、配置文件(如struts-config.xml)、JSP页面和其他相关资源。在这个目录下,你可能会找到Action类、ActionForm类、JSP文件以及配置文件。 在strutsCRUD...

    Strut-crud.war(Struts的CRUD Demo Sample)

    struts的crud sample demo(struts-crud.war) 可以直接解压查看代码,或者放到工程中运行

    struts2CRUD example

    struts2 CRUD example

    Struts2-Crud+JdbcDemo最简单的Struts2+jdbc学习曾删改查程序

    这个"Struts2-Crud+JdbcDemo"项目是一个基础的学习示例,涵盖了如何使用Struts2和JDBC进行基本的CRUD(创建、读取、更新和删除)操作。 首先,我们来详细了解一下Struts2的核心概念: 1. **Action类**:在Struts2...

    Struts2CRUD代码

    在 Struts2 中实现 CRUD 操作通常涉及控制器(Action)、模型(Model)和视图(View)的交互。 在这个代码片段中,我们看到一个 Struts2 Action 类,它包含了对数据库进行 CRUD 操作的方法。首先,类中声明了数据库...

    Struts2整合Spring Hibernate的CRUD实例

    1. **Struts2整合**:首先,我们需要在Struts2的配置文件(struts.xml)中声明Action类,并配置相应的结果页面。Action类通常会由Spring管理,所以需要在Spring配置文件中声明并指定Bean。 2. **Spring配置**:在...

    struts2 实现oracle数据库的增删改查

    在本教程中,我们将深入探讨如何利用Struts2来实现对Oracle数据库的CRUD(创建、读取、更新和删除)操作。 首先,我们需要在项目中集成Struts2框架。这通常涉及到以下几个步骤: 1. 添加Struts2的核心库到项目的类...

    Struts2CRUD

    3. **JDBC与数据库交互**:在Struts2CRUD中,很可能使用JDBC(Java Database Connectivity)来连接并操作数据库。这包括加载数据库驱动、建立连接、执行SQL语句以及处理结果集。 4. **DAO(Data Access Object)...

    在Struts 2中实现CRUD

    ### Struts 2中实现CRUD操作详解 #### 一、引言 CRUD操作是软件开发中最常见的数据处理方式之一,它代表了对数据进行的四种基本操作:创建(Create)、读取(Read)、更新(Update)与删除(Delete)。在企业级应用开发中,...

    struts2 crud

    Struts2 CRUD是一个基于Struts2框架实现的基本创建、读取、更新和删除(Create, Read, Update, Delete,简称CRUD)操作的示例项目。这个项目通常用于教学目的,帮助初学者理解如何在实际应用中使用Struts2进行数据库...

    struts2crud

    Struts2 CRUD(创建、读取、更新、删除)是一个基于Java EE平台的常用操作,用于处理数据库中的数据。在给定的“struts2crud”项目中,开发者分享了自己的实现,而非依赖官方的帮助文档,这表明这是一个独立完成的...

Global site tag (gtag.js) - Google Analytics