通过代码示例跟我学Struts框架——利用Eclipse创建Struts应用示例(第6部分)
Eclipse开发环境中使用Struts框架的探讨

中国包头职大学报2008年第4期E cl i ps e开发环境中使用St r ut s框架的探讨严思静张经宇(湘潭职业技术学院。
湖南省湘潭市411102).摘要:St r ut s框架在软件开发中正在被广泛应用,本文试图分析h-l i ps e的版本魔一些常用插件的使用方法,并时E cl i ps e环境下,St r ut s框架开发的配置过程包括工程、f or m、act i on对象的创建等进行探讨,力求解决应用中的问题。
关键词:Ecl i pse;St r ut s框架;应用中图分类号:TP311.56文献标识码:C文章编号:1671--1440(2008)04咖100--03St r u t s是A p ache基金会J ak ar t a项同组的一个开放源代码项目.能够很好地帮助i avu开发者利用J2E E开发W eb 应片1.它为J ava W eb应用提供r模型一视图一控制器(M odel—V i ew—C ont rol l er,简称M V C)框架,尤其适用于开发大型可扩展的W e b应用.在软件开发中受到相当的重视。
.本文探讨所使用的Ecl i ps e的版本足3.2.基本插件有end"一2.2.O。
G E F一3.2。
NL pac k!一E cl i pse—SD K一3.2。
t om ca t Pl ugi nV e32bet a(E c l i pse的语言包),开发St rut s有很多‘r:具,比较出名的有M yEcl i ps e,E as ySt rut s和St m t sl D E,本文用的是St rut s l D E。
插件的安装过程:把插件的包解压后将feat ur es和pl u.s i ns这两个目录里面的内容复制到E cl i ps e下对应的目录里,然后蕈启Ecl i ps e即可。
有时候重启并不能找到新增的插件,可以在Ecl i ps e、confi gur at i on文件失里打开配置文件confi g.i ni.添加语句鹏面.e hec kC onfi gur at i on:t rue强行更新配置:更改完成后在再次打开Ecl i ps e之前,在该语句前加上#号.不需要再次强行更新,配置好后ⅡJ以创建一个简单的工程测试一下配置是否正确:如果七三经完成了上面所有步骤,现在町以重新启动Ecl i pse。
实验六 Struts2 的开发应用

实验六Struts2 的开发应用网络11-2班3110757214 陈宇鹏一、实验目的理解MVC设计模式的基本概念和Java Web开发的两种模式Model1和Model2,以及Struts开发工作流程和基本应用。
二、实验要求1.掌握Struts2.0的开发环境的建立。
2.理解Struts的框架原理。
3.掌握Struts的工作流程。
4.掌握Struts2.0的基本应用。
三、实验内容(一)Struts2的文件上传1.文件上传页面,其中包含两个表单域:文件标题和文件浏览域♦程序功能:上传页面,包含两个表单域。
♦程序源码:upload.html<html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GBK" /><title>简单的文件上传</title></head><body><form action="upload.action" method="post" enctype="multipart/form-data">文件标题:<input type="text" name="title" /><br>选择文件:<input type="file" name="upload" /><br><input value="上传" type="submit" /></form></body></html>2.处理上传请求的Action类程序源码:UploadAction.javapublic class UploadAction extends ActionSupport{private String title;private File upload;private String uploadContentType;private String uploadFileName;//接受依赖注入的属性private String savePath;//接受依赖注入的方法public void setSavePath(String value){this.savePath = value;}private String getSavePath() throws Exception{return ServletActionContext.getRequest().getRealPath(savePath);}public void setTitle(String title) {this.title = title;}public void setUpload(File upload) {this.upload = upload;}public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType;}public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName;}public String getTitle() {return (this.title);}public File getUpload() {return (this.upload);}public String getUploadContentType() {return (this.uploadContentType);}public String getUploadFileName() {return (this.uploadFileName);}@Overridepublic String execute() throws Exception{System.out.println("开始上传单个文件-----------------------");System.out.println(getSavePath());System.out.println("==========" + getUploadFileName());System.out.println("==========" + getUploadContentType());System.out.println("==========" + getUpload());//以服务器的文件保存地址和原文件名建立上传文件输出流FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName());FileInputStream fis = new FileInputStream(getUpload());byte[] buffer = new byte[1024];int len = 0;while ((len = fis.read(buffer)) > 0){fos.write(buffer , 0 , len);}return SUCCESS;}}1.配置文件上传的Action程序源码:Struts.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.custom.i18n.resources" value="globalMessages"/><constant name="struts.i18n.encoding" value="GBK"/><package name="lee" extends="struts-default"><action name="upload" class="lee.UploadAction"><param name="savePath">/upload</param> <result>/succ.jsp</result></action></package></struts>.部署并浏览该页面。
eclipse for javaee配置web开发环境(struts2+servlet+sping)字体

一、Eclipse helios 配置struts2图解本文章环境:1. Eclipse for JavaEE developer Helios2. Struts 2.3.1.13. tomcat 7.0.6配置前提:配置好tomcat,本文省略配置tomcat步骤其实MyEclipse和Eclipse for JavaEE 的配置过程差不多,唯一的区别在于: Eclipse for JAVAEE创建Dynamic Web Projec;MyEclipse创建的是Web Project;1、创建一个Dynamic Web Project2.点击next3.看到output folder为build\classes,和传统的WEB-INF\classes有所差别,但是开发时不需要注意;4.在WEB-INF中配置web.xml,为了将Struts2框架添加入WEB应用;在src中配置struts.xml(Eclipse在编译时会将src目录下的除了Java文件外的其他文件全部拷贝进WEB-INF\classes)将struts核心类库导入WEB-INF\lib中;5.编写web.xml此处配置的目的是为了将struts2框架融入web应用,此处配置了一个过滤器,从前面学习可以知道,过滤器的作用是在Servlet执行之前完成一些事情,从<url-pattern>中可以看出任意的请求都会进入struts2的框架的范畴;[html]view plaincopyprint?1. <?xml version="1.0"encoding="GBK"?>2. <web-app xmlns:xsi="http://www.w/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"version="3.0">3. <filter>4. <filter-name>struts2</filter-name>5. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>6. </filter>7. <filter-mapping>8. <filter-name>struts2</filter-name>9. <url-pattern>/*</url-pattern>10. </filter-mapping>11. </web-app>6.编写struts.xml[html]view plaincopyprint?1. <?xml version="1.0"encoding="GBK"?>2. <!DOCTYPE struts PUBLIC3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"4. "/dtds/struts-2.0.dtd">5.6. <struts>7.8. </struts>编写Hello world1.创建一个Hello.jsp 并且内容为Hello struts2!!!2.配置struts.xml[html]view plaincopyprint?1. <struts>2. <constant name="struts.devMode"value="true"></constant>3. <package name="HelloPackage"namespace="/"extends="struts-default">4. <action name="Hello">5. <result>/Hello.jsp</result>6. </action>7. </package>8. </struts>3.部署并在浏览器中填写http://localhost:8888/StrutsDemo01/Hello注意:在以后的开发中必须在<struts>元素中添加:<constant name="struts.devMode" value="true"></constant>因为这表明是在开发者模式,是指发生错误时提供更多的提示信息;eclipse for JavaEE 下怎么建立一个Servlet类选中文件夹【Java Resources: src】,右击【new】-【other】-【Web】-【servlet】建立完成后,可以发现:【WebContent】-【WEB-INF】-【web.xml】,已经添加了刚才的那个s ervlet的信息。
通过代码示例学习Java安全技术(第7部分:Tomcat服务器对J2EE安全规范的支持)

前言随着网络应用的不断深入,特别是电子商务应用的普及,对网络应用的安全提出了许多新的和更高的要求。
在Java及J2EE应用系统平台环境中,提供了多层次和多种形式的安全技术的支持,从而可以在一定的程度上保证应用系统的安全性。
比如,将Web应用中的客户端和Web服务器端之间的通讯连接方式从Http方式改变为Https方式,则是对Web 应用在协议层次的安全保护技术——Https是在协议层对Http的再次封装,加入了SSL/TLS等相关的技术。
作者根据自身多年的软件开发实践和经验总结,结合多年的IT职业培训的教学和高校软件学院一线的教学工作体验,在本系列文档中通过具体的程序代码示例为读者介绍Java 及J2EE应用系统平台环境中的安全相关的应用技术。
主要的目的是希望能够将作者在项目开发中所涉及的安全应用技术进行总结和提炼,以成功的经验或者失败的教训为读者减少软件开发中由于安全技术的欠缺而导致应用系统在使用中所带来的各种风险,同时也为高校师生总结出Java及J2EE应用系统平台环境中的相关安全技术,增强和培养软件专业的学生对应用系统安全技术的关注度和提高对相关技术的应用能力。
在J2EE的技术规范中,为J2EE应用系统提供了两种不同形式的安全控制规范:说明性的安全性和可编程的安全性。
本示例文档将应用“说明性的安全性”实现对Web应用的安全进行定义。
所谓的说明性的安全性,也就是通过安全结构描述(一般是在XML配置文件中定义)的方式来代表应用程序的安全需求。
安全结构一般包括安全角色、访问控制和验证要求等方面的信息。
在J2EE平台中的Web应用程序中的部署描述符文件(web.xml)充当了说明性安全的主要定义工具。
因为部署描述符web.xml文件是Web应用系统组件的开发者和应用程序部署者或应用程序组装者之间的配置定义工具。
本文档主要涉及J2EE安全性相关知识,在Tomcat服务器中如何实现Http可配置化验证技术及应用示例,包括Http基本身份验证示例、自定义表单身份验证的示例和Http摘要身份验证的示例等方面的内容。
Eclipse+Struts+Spring+Hibernate+Mysql环境搭建及访问数据库实例

前言:这个例子的view层用到了struts,DAO层用到了hibernate,由于逻辑及其简单(只是往数据库添加一条记录),所以暂时没有用到spring。
一、使用eclipse+struts+spring+hibernate+myeclipse+mysql开发配置过程。
1.jdk的安装:安装文件:jdk-1_5_0_15-windows-i586-p.exe说明:最好用jdk1.5,可以去sun主页下载,我这里已经下了,可以提供。
注意:最好在新装系统下安装,并且此前没有装过java相关的软件,以免出现版本或者path问题。
过程:可以直接安装到c盘根目录下即可,注意要记住安装路径,以后可能会用到。
2.web应用服务器tomcat的安装:安装文件:apache-tomcat-5.5.26.exe说明:要想构建jsp应用,web应用服务器是必须要有的,asp服务器为IIS,php服务器为Apache,jsp服务器比较多有weblogic和websphere(两者是商业级的,比较强大,但要收费),tomcat和resin(免费的,比较适用中小级应用,如果是大型应用则须考虑集群)。
在这里,我选用tomcat,因为它使用较广泛,网上相关的资料也比较多。
我并没有选择最新版本,原因是次新版本往往比最新版本更加稳定。
注意:必须先装jdk,否则不能安装tomcat(原因之一是tomcat在对jsp进行编译时用到了jdk,并且jdk是tomcat正常工作的前提)。
过程:可以直接安装到c盘默认路径,选择前面安装的jdk路径,并且修改端口8080为80(tomcat默认端口为8080,而一般我们通过IE访问时端口为80,需要注意的是要保证没有其他程序已经占用80端口(比如你已经装了iis或者apache),否则tomcat不能正常启动),控制台页面的管理员admin帐号暂时不设置密码。
测试页面http://127.0.0.1,检测是否安装成功,如果进入欢迎页面就表示tomcat安装成功。
STRUTS2入门教程(全新完整版)

一、发展历史及简介发展历史Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages、Servlet、标签库以及面向对象的技术水准。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。
这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。
当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。
同样,软件工程师使用Struts为业务应用的每一层提供支持。
它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
早期Smalltalk程序语言便采用了MVC(Model-View-Controller)模式(Patterns)以增加程序代码弹性,MVC模式将程序代码整理切割为三部分,Model部分是业务与应用领域(Business domain)相关逻辑、管理状态之对象,Controller部分接收来自View所输入的资料并与Model部分互动,struts业务流程控制(Flow Control)之处,View部分则负责展现资料、接收使用者输入资料。
在Java应用中,JFC/Swing、AWT、JSP皆是可用作View的技术规格,而JavaBean与Enterprise JavaBean规格则可用于Model程序代码,一旦应用程序以MVC模式加以适当的分割,Model部分程序代码可在不同使用者接口外观的应用程序中重复使用。
随着JSP与Servlet技术大量应用于以Web为基础的应用程序,Java开发人员群体认为应以较佳的模式以提升Web应用程序的可维护性与重复使用性。
管理员添加
9.3 使用Struts开发一个简单的Web应用——添加管理员ManagerAdd在前面章节中我们重点讲述了Struts的基本原理以及Struts中各个组件的功能说明,下面我们结合一个具体的开发案例来说明怎样使用Myeclipse工具开发Struts Web应用。
为了能让读者更好的理解Struts框架中的各种组件的功能,在这个案例中要会使用JSP页面组件与ActionForm组件、前端控制器ActionServlet组件与后端业务控制器Action组件、业务功能组件(JavaBean)以及与配置文件struts-config.xml相关的ActionMapping和ActionForward 组件。
本节读者需要重点学习使用工具开发Struts应用的流程和理解各组件的功能。
在介绍案例之前我们先来看Struts应用中的层次划分图(如下图9.5)。
图9.5 Struts应用中各个层次之间的关系模型应该和视图以及控制器之间保持独立。
在分层的框架结构中,位于上层的视图和控制器依赖于下层模型的实现,而下层模型不应该依赖于上层视图的控制器的实现。
Struts应用中需要为视图层开发JSP页面组件和ActionForm组件;需要为控制层开发Action组件;需要为模型层开发JavaBean实现业务逻辑;另外为了完成和数据库的交互我们要开发持久化层组件DAO(关于DAO我们在前面章节中已经涉及)。
我们构建的ManagerAdd遵照这个层次划分来设计开发流程。
提示:为了让读者快速的了解开发Struts应用的流程,ManagerAdd应用做了简单的修改,与实际的应用有一点区别,我们在第10章中的用户管理模块开发中将会对添加管理员做适当的修改。
9.3.1 应用需求说明后台管理员分为两种角色,一种是普通管理员,具有图书设置,会员设置,订单设置等权限,另外一种是超级管理员,除了具有普通管理员的权限外还有管理普通管理员的权限,管理员添加就是管理员设置中的一项功能。
struts2入门教程一(环境搭建,基本案例实现)CSDN
Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。
虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。
再对起进行修改。
删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。
eclipse 结构体定义
在Eclipse中,结构体(Struct)是一种自定义的数据类型,用于组合多个不同类型的变量。
在C和C++语言中,可以使用结构体来创建自己的数据结构,以便更好地组织和管理相关的数据。
在Eclipse中,可以按照以下方式定义一个结构体:
```c
struct MyStruct {
// 成员变量定义
dataType1 member1;
dataType2 member2;
// ...
};
```
其中,`MyStruct`是结构体的名称,可以根据实际需要自定义。
`dataType1`、
`dataType2`等是成员变量的数据类型,可以是任何合法的数据类型,例如整数、浮点数、字符、指针等。
成员变量可以有任意多个,每个成员变量都有一个对应的名称。
以下是一个简单的示例,展示了如何在Eclipse中定义一个名为`Person`的结构体,包含姓名和年龄两个成员变量:
```c
struct Person {
char name[50];
int age;
};
```
通过上述定义,我们创建了一个名为`Person`的结构体,其中包含了一个类型为`char`的字符数组`name`和一个类型为`int`的整数`age`。
这样,我们就可以使用`Person`这个结构体类型来定义具体的结构体变量,并对其成员变量进行操作和访问。
请注意,在Eclipse中,结构体的定义通常放在头文件(.h)或源文件(.c、.cpp)中,以便在需要使用结构体的地方进行引用和声明。
Strust技术的应用
struts-config.xml配置文件的说明
<action-mappings> <action type="com.sinosoft.visa.ui.control.facade.UILogonFacade" validate="false" scope="request" path="/logonin"> <forward name="success" path="/common/SystemFrame.jsp" /> <forward name="false" path="/index.jsp" /> </action>
对应的页面表单:
<form method="post" action="/payment/logonin.do?UIAction=LogOn">
Struts中的标签库
· struts-html标签库。这个库可以被用来生成动 态HTML用户界面和窗体。 · struts-bean标签库。在将JavaBean代码放入 JSP 页面时这个库提供实质性的加强的功能以改 善其性能,它由标签提供。 · struts-logic标签库。这个库可管理有条件的 文本生成,在对象集合中循环以重复生成输出文 本和应用程序流程管理。 · struts-template标签库。在为具有相同的风格 或格式生成动态JSP模板时,这个库所提供的标 签会有很大的帮助。
目前用到的标签
<bean:message key="prompt.payment.startSerialNo" /> <bean:write name="vsDossierDto" property="userName"/>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1.1利用Eclipse创建Struts应用示例(第6部分) (2)1.1.1体验多个表单对应一个ActionForm组件 (2)1.1.2修改配置文件struts-config_userManage.xml中的配置项目 (9)1.1.3修改本实例项目中的各个表示层的JSP页面 (10)1.1.4应用DynaActionForm组件技术 (12)1.1.5对我们前面的DynaActionForm类进行定制 (16)1.1.6将多个类似的Action类合成在一个Action类中 (22)1.1.7利用DispatchAction类的技术来实现自动分发请求 (28)1.1利用Eclipse创建Struts应用示例(第6部分)1.1.1体验多个表单对应一个ActionForm组件1、新增一个ActionForm组件(1)设置struts-config_userManage.xml文件可以可视化编辑,文件关联(2)然后再打开struts-config_userManage.xml文件,利用可视化方式添加一个UserInfoActionForm对象名称为userInfoActionForm、基类为org.apache.struts.action.ActionForm,本类为erInfoActionForm(3)在该UserInfoActionForm类中添加如下的成员属性String userNameString userPassWordString departAdminLevelString confirmPassWordString userAdminLevelString userDepartmentString userImageString formType2、编程该ActionForm组件package com.px1987.sshproject.form;import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.*;public class UserInfoActionForm extends ActionForm { private String confirmPassWord;private String departAdminLevel;private String formType;private String userAdminLevel;private String userDepartment;private String userImage;private String userName;private String userPassWord;public String getConfirmPassWord() {return confirmPassWord;}public void setConfirmPassWord(String confirmPassWord) { this.confirmPassWord = confirmPassWord;}public void setUserPassWord(String userPassWord) {erPassWord = userPassWord;}public void setUserName(String userName) {erName = userName;}public void setUserImage(String userImage) {erImage = userImage;}public void setUserDepartment(String userDepartment) {erDepartment = userDepartment;}public void setUserAdminLevel(String userAdminLevel) { erAdminLevel = userAdminLevel;}public void setFormType(String formType) {this.formType = formType;}public void setDepartAdminLevel(String departAdminLevel) { this.departAdminLevel = departAdminLevel;}public String getDepartAdminLevel() {return departAdminLevel;}public String getFormType() {return formType;}public String getUserAdminLevel() {return userAdminLevel;}public String getUserDepartment() {return userDepartment;}public String getUserImage() {return userImage;}public String getUserName() {return userName;}public String getUserPassWord() {return userPassWord;}public ActionErrors validate(ActionMapping actionMapping,HttpServletRequest httpServletRequest) { ActionErrors actionErrors=new ActionErrors();int formTypeDigit=Integer.parseInt(formType);switch(formTypeDigit){case 1: //是登录吗?actionErrors=validateUserLogin(actionMapping,httpServletRequest);break;case 2: //是注册吗?actionErrors=validateUserRegister(actionMapping,httpServletRequest);break;case 3: //是修改吗?actionErrors=validateUserUpdate(actionMapping,httpServletRequest);break;}return actionErrors;}public ActionErrors validateUserLogin(ActionMapping actionMapping,HttpServletRequest httpServletRequest) { ActionErrors actionErrors=new ActionErrors();if((userName==null)||(userName=="")||(userName.length()==0)){actionErrors.add("userName",new ActionMessage("userNameEmpty"));}else if((userPassWord==null)||(userPassWord=="")||(userPassWord.length()==0)){ actionErrors.add("userPassWord",new ActionMessage("userPassWordEmpty"));}return actionErrors;}public ActionErrors validateUserRegister(ActionMapping actionMapping,HttpServletRequest httpServletRequest) { ActionErrors actionErrors=new ActionErrors();if((userName==null)||(userName=="")||(userName.length()==0)){actionErrors.add("userName",new ActionMessage("userNameEmpty"));}else if((userPassWord==null)||(userPassWord=="")||(userPassWord.length()==0)){ actionErrors.add("userPassWord",new ActionMessage("userPassWordEmpty"));}return actionErrors;}public ActionErrors validateUserUpdate(ActionMapping actionMapping,HttpServletRequest httpServletRequest) { ActionErrors actionErrors=new ActionErrors();if((userName==null)||(userName=="")||(userName.length()==0)){actionErrors.add("userName",new ActionMessage("userNameEmpty"));}else if((userPassWord==null)||(userPassWord=="")||(userPassWord.length()==0)){ actionErrors.add("userPassWord",new ActionMessage("userPassWordEmpty"));}return actionErrors;}public void reset(ActionMapping actionMapping,HttpServletRequest servletRequest) {confirmPassWord="";departAdminLevel="";formType="";userAdminLevel="";userDepartment="";userImage="";userName="";userPassWord="";}}1.1.2修改配置文件struts-config_userManage.xml中的配置项目<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "/dtds/struts-config_1_2.dtd"><struts-config><form-beans ><form-bean name="userLoginForm" type="erLoginForm" /> <form-bean name="userRegisterForm" type="erRegisterForm" /><form-bean name="userInfoActionForm" type="erInfoActionForm" /></form-beans><action-mappings ><action attribute="userLoginForm" input="/index.jsp" name="userInfoActionForm"path="/userLoginURI" scope="request"type="erLoginAction"><forward name="loginSuccess" path="/loginSuccess.jsp" /><forward name="loginFailure" path="/loginFailure.jsp" /></action><action attribute="userRegisterForm" input="/userManage/userRegister.jsp"name="userInfoActionForm"path="/userRegister" scope="request"type="erRegisterAction"><forward name="registerFailure" path="/userManage/registerFailure.jsp" /><forward name="registerSuccess" path="/userManage/registerSuccess.jsp" /> </action></action-mappings></struts-config>1.1.3修改本实例项目中的各个表示层的JSP页面1、在用户登录页面中添加下面的标签<html:hidden property="formType" value="1"/>2、在用户注册页面中添加下面的标签<html:hidden property="formType" value="2"/>3、修改项目中的各个Action类中的表单对象的类型转换UserLoginForm userLoginForm = (UserLoginForm) form;UserInfoActionForm userLoginForm = (UserInfoActionForm) form;或者4、对现在的系统进行测试(1)继续输入http:/127.0.0.1:8080/SSHStrutsWeb/userManage/userLogin.jsp(2)将应该出现下面的结果(3)如果出现错误时,也能够正确地进行错误类型的判断(4)如果出现错误时,也能够正确地进行错误类型的判1.1.4应用DynaActionForm组件技术1、DynaActionForm技术实现简介Struts框架中的表单可分为两种:一种是ActionForm类型,另外一种是DynaActionForm。