Struts1配置实例

合集下载

struts1学习笔记

struts1学习笔记

struts1开发学习笔记使用一个简单的例子记录struts1开发过程。

0、 描述主要功能描述:index 界面上只有两个超链接,分别可以打开录入产品界面和显示产品列表界面。

newProduct.jsp 是录入的界面,searchProduct.jsp 是查询列表的界面。

ProductAction.java 是处理逻辑的action简单描述流程图:1、 构建环境在Myeclipse 中,新建一个工程StrutsTest ,选择该工程,右键Myeclipse->add srutscapapibality ,弹出界面,选择struts1.2支持。

如下图所示:添加完struts 支持后,lib 目录下会增添struts 的jar 包、增添struts 的配置文件:/WEB-INF/struts-config.xml 、同时在web.xml 中增添了struts 的配置。

2、 代码编写2)创建工具类Util.java,从数据库连接池中获得连接。

需要两个步骤第一步:在WebRoot/META-INF/下新建一个context文件,通过jndi方式配置数据源,第二步:在util类中读取配置获得连接,util.java如下:3)创建工具类EncodingFilter.java,自定义过滤器,并在web.xml中配置,参考web.xml配置中内容。

EncodingFilter.java的内容如下:4)修改web.xml,指定首页为index.jsp。

文件内容如下:最后定义了一个fileld 的过滤器,是用来过滤字符编码的,后面会提到。

6)index.jsp中提到productAction.action?method=viewAddForm,需要在在配置文件中配置了action的实现类,以及作为上传数据时用来保存数据的form:productForm10)searchProduct.jsp是查询结果界面,代码如下:http://localhost:8080/StrutsTest即可访问。

搭建SSH框架(Struts1,Spring2.5,Hibernate3)

搭建SSH框架(Struts1,Spring2.5,Hibernate3)

搭建SSH框架:Struts1.* + Spring2.5 + Hibernate3.0 一,项目结构:图(1)Jsp页面省略,主要是一些添删改查的页面;二,开始搭建项目环境,步骤如下:使用平台:MyEclipse6.0/6.5框架版本:Struts1.* + Spring2.5 + Hibernate3.0;1,添加过程:1>,新建项目: 打开MyEclipse,在Package Explorer视图下,右键单击New-> Web Project;注意:在新建项目时,JDK的版本最好要选择Java EE 5.0;因为版本过低,可能有些JSP方面的功能不支持;新建玩项目之后,把该导的包导入到下面,下图为SS H 框架所需要的Jar包,注意,该项目用的是ORACLE数据库;其中,activation与mail这两个包为Java发邮件的包;classes12为Oracle数据库的驱动包,如果不是Oracle数据库,可更换该Jar包;dwe为Ajax dwr 框架中的包;2>,接着就开始用MyEclipse辅助开发Struts,Spring,Hibernate了;3>,首先MyEclipse辅助开发Struts,方法:右键单击你所建的项目,出现一级菜单,选择Myeclipse,选择Myeclipse之后会出现二级菜单,接着选择Add Struts Capabilities;;接着具体操作如下面图示:点击Finish按钮完成;完成之后,可将包删除;在上图中,如果那个勾没有去掉的话,就会自动生产如下标签:当然,如果你觉得标签对你没什么用的话,可以删除;如果该勾去掉的话,就只生成标签,这是Struts的核心标签;4>,MyEclipse辅助开发Spring,方法跟上面的一样,选择Add Spring apabilities;;接着具体操作如下面图示:然后点击Next,具体操作如下图:接着点击 Finish按钮,完成此项操作;5>,,最后MyEclipse辅助开发Hibernate,在执行和上面类似方法之前,Hibernate 需要先做另外一件事情,那就是和数据建立连接,具体操作如下图:点击上图位置的或者右边的>> ,然后再选择MyEclipse Database Explorer切换到如下图页面:,然后右键单击,新建一个Database Driver;如下图:下面这个截图是该项目的数据库链接图:如图所示,测试数据库链接成功;然后可直接点击Finish完成;接着切换到窗口,按照上面第三小步的方法,选择Add Hibernate apabilities;;接着具体操作如下面图示:点击下一步:点击下一步:点击下一步:点击下一步:点击 Finish 完成;6>,最后一步,就是运用Hibernate的映射机制,把数据库的表与JAVA的对形成一个关系映射;在此之前,首先应该在项目SRC的目录下面新建一个包,如该项目所示,用来存放映射生成的POJO对象以及映射文件;如下图:有一点说一下,你生成的*.hbm.xml文件可能不止一个,对,你可以把它们整合到一个文件中;然后新建按第五小步的方法,把窗口切换到MyEclipse Database Explorer界面,然后打开右键刚才所建立的链接,选择属于你自己的用户;然后选择Tble;右键选择如上图的属性:接下来的操作如下图:点击 Next,进入下一步:点击 Next,进入下一步:至此,项目环境己经搭建完成;三,项目搭建完成,SSH各个部分配置文件的说明,以及它们之间存在的关系:1,首先是Struts的核心配置文件,即struts-config.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><data-sources /><form-beans><!—建立Form表单,在此处进行登记 -→<form-bean name="userForm"type="erForm" /> </form-beans><global-exceptions /><global-forwards /><!—各个Action对应与之相对应的表单 -→<action-mappings><!-- 用户管理 --><action parameter="opers" attribute="userForm" name="userForm"path="/doUser" scope="request"><forward name="login_ok" path="/welcome.jsp"></forward><forward name="login_no" path="/index.jsp"></forward> </action></action-mappings><controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProc essor"></controller><message-resourcesparameter="ermanagerview.struts.ApplicationResources"> </message-resources><!—Spring辅助Struts管理Struts-→<plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"value="/WEB-INF/action-servlet.xml" /></plug-in></struts-config>2,其次就是Springd的applicationContext.xml文件和action-servlet.xml文件:applicationContext.xml文件:<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd"><!-- Session 工厂 --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml"><!-- 可以不要配置文件(hibernate.cfg.xml),直接写在这个Spring的配置文件中 --></property></bean><!-- 模板 --><bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 事务器 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManage r"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 对外代理 --><!-- 1,用户管理 --><bean id="userDaoImp"class="erDaoImp"><property name="hibernateTemplate" ref="hibernateTemplate" /> </bean><bean id="userServiceTarget"class="erServiceImp"> <property name="userdao"><ref local="userDaoImp" /></property></bean><bean id="userService"class="org.springframework.transaction.interceptor.TransactionProxyF actoryBean"><property name="transactionManager"><ref local="transactionManager" /></property><property name="target"><ref local="userServiceTarget" /></property><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean></beans>action-servlet.xml文件:<!—Spring辅助Struts管理Struts-<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> <bean name="/doUser"class="erAction"scope="prototype"></bean></beans>3,最后就是Hibernate的hibernate.cfg..xml文件:<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="ername">wangxiaodong</property><property name="connection.url">jdbc:oracle:thin:@192.168.0.2:1521:ALIZEEDB</property><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><propertyname="myeclipse.connection.profile">Test</property><property name="connection.password">donny</property><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><mappingresource="com/ygkq/usermanager/model/entity/User.hbm.xml" /></session-factory></hibernate-configuration>该文件基本上不用动,都是自动生成的代码;当然,你也可以根据自己的需要添加代码,例如,你想在执行HQL语句的时候让它显示SQL语句,可将<property name="hibernate.show_sql">true</property>插入代码中;另外在图(1)中还有两个配置文件没有提到,那就是log4j.properties 与mytag.tld;其中log4j.properties是配置日志信息的;而mytag.tld主一个自定义标签;四,SSH框架搭建完成:SSH框架基本搭建完成,如果有不对或者不妥之处,请随时指教!~E-mail:jerry8059@。

struts1配置文件action

struts1配置文件action
1.Attribute:设置action关联的actionForm在request或session范围内的值。就是在request或session共享内的名称。
2.ClassName:对应配置元素的类,默认是ActionMapping。
3.Forward:制定转发URL路径。
4.Include:制定包含URL路径。
13.type:指定Action类的完整类名。
fo。
9.Roles:指定允许调用该Action的安全角色,多个角色之间以逗号隔开。
10.Scope:指定Form的存在范围,默认是session.type指定的Action的完整名。
11.Unkonwn:如果是true表示可以处理用户发出的所有的无效的ActionURL,默认是false。
12.Validate:指定是否调用ActionForm的validate方法。
5.Input:制定包含表单的URL,当表单验证失败时发送的URL。
:指定和该Action关联的Form名字。改名字必须是在form-bean中定义过的,可写可不写。
7.Path:必须以“/”开头的方位Action的路径。
8.Parameter:指定Action配置参数。在Action的execute()方法中可以调用ActionMapping的getParameter()方法来读取匹配的参数。

struts1简单例子

struts1简单例子

仅以此例子进行STRUTS1的工作流程做初步了解1.首先在MYECLIPSE中新建一个新web工程命名为TEST2.然后右键单击工程->Myeclipse->add Struts Capabilities..进行struts所需jar包的导入其中,Struts specification版本选择Struts1.2 ,Base package for new classes: 填写struts,Default application resources:struts.ApplicationResources,其他默认。

3.当上一步创建完成之后查看相应的配置文件是否加载到工程中,其中在工程中能看到金加入了一个Struts 1.2 Libraries的jar包文件,还有struts-config.xml配置文件4.首先查看web.xml文件<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-cl ass><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>jsp/login.jsp</welcome-file></welcome-file-list>查看文件内容是否为以上格式,其中welcome-file-list为欢迎界面可随意更改。

详解struts1的配置文件

详解struts1的配置文件

1.<Data-sources>:用来配置数据源,连接数据库。

<data-source>:具体是数据库连接。

Type:type="org.apache.dbcp.BasicDataSource" Struts中连接数据库的类。

<set-property>:此标签中配置具体的链接内容。

如:<set-property property="driverClassName" value="com.mysql.jdbc.Driver" /> 数据库驱动<set-property property="url" value="jdbc:mysql://localhost:3306/exam" />数据库地址。

<set-property property="username" value="root" />数据库登录名。

<set-property property="password" value="root" />数据库密码。

<set-property property="autoCommit" value="true" />自动提交。

<set-property property="maxActive" value="10" />最大连接数。

<set-property property="maxWait" value="5000" />最大等待数。

<set-property property="defaultAutoCommit" value="false" />默认自动提交。

struts1的使用

struts1的使用

struts 1 的使用一、搭建struts 1 的环境1、导入struts 1 的jar 包;2、新建struts-config.xml 配置文件;3、在web.xml 中配置struts 1 的ActionServlet。

二、开发ActionForm (也叫Form Bean)1、新建一个类,继承ActionForm;2、注册Form Bean,修改struts-config.xml 配置文件例如:在配置文件中添加一个FormBean,名称为loginForm<form-beans><form-bean name=”loginForm” type=”com.lightcom.form.LoginForm”/> </form-beans>三、开发Action1、建立一个类,继承Action覆盖execute 方法a)需要强制转型;b)调用其它模块;c)跳转(根据关键字,关键字参照该action 中forward 标签中的name 属性)。

2、注册Action,修改struts-config.xml 配置文件path:指明调用者(jsp)能通过中心控制器ActionServlet 找到该Action;type:指定该action 类全名;name:该action 引用的form 的名称;四、创建调用Action 和Action 转发的页面1、创建调用Action 的页面页面中的表单form 中的action 属性的值与struts-confgi.xml 中action 标记的path 属性值对应;2、创建Action 执行重写的execute 方法后转发的页面页面的名字与struts-config.xml 配置文件中的action 标记的标签forward 的path 属性值保持一致;例如:action 中的path=”/login”则form 表单中的action=”<%=request.getContextPath()%>/login.do”。

struts01

struts01

Struts
• 关键词: Struts、MVC、C • Struts是实现了MVC的一个框架,Apache开源组织下一个项目 组 • 在项目中使用Struts框架可以快速的开发一个基于MVC的应用, 使用Struts框架程序员更专注于实际的业务。 • Struts实现了MVC的VC层
Struts原理图
web.xml注册ActionServlet
• 关键词:注册和映射Struts核心控制器
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
struts-config.xml简单配置例子
<struts-config> <form-beans> <form-bean name="userForm" type=“erForm"></form-bean> </form-beans> <action-mappings> <action name="userForm" attribute="userForm1" path="/user" type=“erAction" scope="request"> <forward name="succ" path="/succ.jsp"></forward> <forward name="fail" path="/fail.jsp"></forward> </action> </action-mappings> <message-resources parameter=“xxx.ApplicationResources" /> </struts-config> 请求地址: http://localhost:8080/myproject/user.do 部分Action代码: … return mapping.findForward("succ"); …

struts1配置解释

struts1配置解释

struts1自定义方法及struts1 Action 配置 2012-06-20 09:52:15| 分类:J2EE |举报|字号订阅 Action 继承 DispatchAction public class UserAction extends DispatchAction{ private UserBO bo = newUserBOImpl() ; public ActionForward add(ActionMappingmapping,ActionForm form,HttpServletRequestrequest,HttpServletResponse response){ UserForm ff =(UserForm)form; UserModel model = new UserModel();try{ BeanUtils.copyProperties(model, ff) ; }catch(Exceptione){ e.printStackTrace() ; } bo.addUserModel(model) ; ff.reset(mapping, request) ; return mapping.findForward("search") ; } public ActionForward update(ActionMapping mapping,ActionFormform,HttpServletRequest request,HttpServletResponseresponse){ UserForm ff =(UserForm)form; UserModel model = new UserModel(); try{ BeanUtils.copyProperties(model,ff) ; }catch(Exception e){ e.printStackTrace() ; }bo.updateUserModel(model) ; return mapping.findForward("search") ; } } 在提交页面添加隐藏域当提交到上面的 action 当中后他就自动去找 add 这个方法执行了还有必须在mxl 当中配置 parameter="method" 这个属性在struts-config.xml里的就可以了 form 里 action.do?method=xxx 就可以了!struts1 Action 配置 action元素的所有配置会被映射到ActionMapping对象中。

Struts1 原理及配置讲解附源码

Struts1 原理及配置讲解附源码

Struts1原理及配置讲解附源码最近要看公司网站源码,源码都是用struts1写的,我们平时用的都是struts2,所以的对struts1不是很熟悉。

我也就是刚开始接触struts的时候对struts1有个简单的学习(搭建一个简单的项目,然后连接数据库做一些增删改查的操作还可以,但是具体的原理让我说我也说不上来),因此今天抽一部分时间把struts1的概念了解下和自己动手搭建一个项目使用struts1(就是一个简单的用户登录,居然可以跑起来,瞬间感觉对用struts1做一些简单功能还是可以做成的)。

废话不说了....首先介绍下struts1工作原理:1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。

(面向对象思想)2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。

3.form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。

4.派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。

5.处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。

服务器通过ActionForward对象进行转发工作。

6.返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。

7.查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。

struts1配置文件详解

struts1配置文件详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN""/struts/dtds/struts-config.dtd"><!-- struts-config.xml中的元素必须按照上述doc指令中的dtd文档定义顺序书写,本例即遵从了dtd定义顺序--><!-- struts-config是整个xml的根元素,其他元素必须被包含其内--><struts-config><!--名称:data-sources描述:data-sources元素定义了web App所需要使用的数据源数量:最多一个子元素:data-source--><data-sources><!--名称:data-source描述:data-source元素定义了具体的数据源数量:任意多个属性:@key:当需要配置多个数据源时,相当于数据源的名称,用来数据源彼此间进行区别@type:可以使用的数据源实现的类,一般来自如下四个库Poolman,开放源代码软件Expresso,JcorporateJDBC Pool,开放源代码软件DBCP,Jakarta--><data-source key="firstOne" type="mons.dbcp.BasicDataSource"><!--名称:set-property描述:用来设定数据源的属性属性:@autoCommit:是否自动提交可选值:true/false@description:数据源描述@driverClass:数据源使用的类@maxCount:最大数据源连接数@minCount:最小数据源连接数@user:数据库用户@password:数据库密码@url:数据库url--><set-property property="autoCommit" value="true"/><set-property property="description" value="Hello!"/><set-property property="driverClass" value="com.mysql.jdbc.Driver"/><set-property property="maxCount" value="10"/><set-property property="minCount" value="2"/><set-property property="user" value="root"/><set-property property="password" value=""/><set-property property="url" value="jdbc:mysql://localhost:3306/helloAdmin"/></data-source></data-sources><!--名称:form-beans描述:用来配置多个ActionForm Bean数量:最多一个子元素:form-bean--><form-beans><!--名称:form-bean描述:用来配置ActionForm Bean数量:任意多个子元素:form-property属性:@className:指定与form-bean元素相对应的配置类,一般默认使用org.apaceh.struts.config.FormBeanConfig,如果自定义,则必须继承FormBeanConfig @name:必备属性!为当前form-bean制定一个全局唯一的标识符,使得在整个Struts 框架内,可以通过该标识符来引用这个ActionForm Bean。

structs1参数配置详解

structs1参数配置详解

<?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><data-sources /><form-beans ><form-bean name="loginForm"type="com.fit.struts.form.LoginForm" /></form-beans><global-exceptions /><global-forwards /><action-mappings ><actioninput="/login.jsp"name="loginForm"path="/login"scope="request"type="com.fit.struts.action.LoginAction" ><forward name="suc" path="/suc.jsp"></forward><forward name="fail" path="/fail.jsp"></forward></action></action-mappings><message-resourcesparameter="com.fit.struts.ApplicationResources" /></struts-config>1、首先我们来简单总结以下struts1的处理流程首先:由视图层发出请求,当ActionServlet接收到 HTTP 请求后,在doGet 或 doPost 方法中都会调用process()方法处理请求。

Struts1

Struts1

Struts1一、为什么使用框架SSH:Struts(MVC框架)、Hibernate(数据库处理框架、面向对象的数据库处理框架)、Spring(IOC控制反转、AOP面向切面编程)、Ibatis。

举例:Word做简历模板。

1.不用排版、布局,提高效率2.可专心在内容上。

3.结构统一,便于人事阅读4.新手可作出专业的简历。

框架技术分析:1.更好更快地构建程序。

2.专心在业务上,因为框架本来就是一个半成品3.提供可重用的公共结构4.站在巨人的肩膀上,享用前人的经验和智慧。

二、自定义框架回顾核心类:ActionServlet类三、Struts1产品介绍1.Struts1搭建【略】2.多配置文件导入在web.xml中配置。

通过逗号进行分隔。

<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config1.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet>3.全局设置<global-forwards><forward name="success"path="/success.jsp"></forward></global-forwards>此处可以理解为全局变量。

struts1登录示例

struts1登录示例

struts1登录示例
Struts1框架实例—登录实例:
1、实例开始工作—导入jar包,在官网上下载struts1框架包,解压之后导入工程的:
2、之后配置web.xml(这里的具体配置方法可以参见struts1框架包中的实例文件夹webapps中的实例代码中web.xml文件的配置方法):
具体如下:
首先这个配置文件中最主要的就是做了两件的事情,一个是配置ActionServlet,一个是初始化struts-config.xml配置文件参数。

3、配置完了web.xml文件,之后我们就要开始进入项目代码阶段了。

登录页面:
切记那个action后面的路径一定要是.do开头的,因为我们在web.xml中配置的是*.do。

这里依旧不介绍为什么随后博客会深入分析。

4、建立两个异常类,一个是用户名未找到、一个是密码错误:
①用户名未找到
②密码错误
5、业务处理类代码:
6、建立LoginActionForm类,这个类继承ActionForm类,简单说一下这个类,这个类主要是负责收集表单数据的,在这里一定要注意表单的属性必须和actionForm中的get和set方法的属性一致。

这里依旧不深入解释,随后博客都会涉及到。

7、LoginAction类的建立,这个是负责取得表单数据、调用业务逻辑以及返回转向信息。

8、既然有转向,那么我们还要建立两个页面,一个是登录成功页面,一个登录失败页面。

①登录成功页面
②登录失败页面
9、最后要进行struts-config.xml的配置。

经过配置之后实例就已经做完了,感兴趣童鞋可以自己手动运行一下。

本文作者:lfsf802。

struts1标签示例

struts1标签示例

<%@ page language="java" contentType="text/html;charset=utf-8"%><%@ taglib uri="/WEB-INF/resource/struts-logic.tld" prefix="logic"%><%@ taglib uri="/WEB-INF/resource/struts-bean.tld" prefix="bean"%><%@ taglib uri="/WEB-INF/resource/struts-html.tld" prefix="html"%><%@ taglib uri="/WEB-INF/resource/struts-tiles.tld" prefix="tiles"%><%@ taglib uri="/WEB-INF/resource/struts-nested.tld" prefix="nested"%><%@ taglib uri="/WEB-INF/resource/c.tld" prefix="c"%><%@ taglib uri="/WEB-INF/resource/app.tld" prefix="app"%><%@ taglib uri="/WEB-INF/resource/fmt.tld" prefix="fmt"%><!-- 需要在struts-config.xml中action的path为"/tag"的name属性中指定一个form bean --> <html:form action="/tag"><html:hidden property="id" />userName:<html:text property="userName" />password:<html:password property="password" /><br><!--在checkbox后面添加一个和checkbox的属性同名并且value为“false”的隐藏输入框,强迫Struts去重新设置checkbox的属性值一般情况下,在ActionForm中都使用布尔型变量来表示一个checkbox,这是因为它要么没被选中,要么就是被选中。

struts1之ActionServlet详解

struts1之ActionServlet详解

struts1之ActionServlet详解在web.xml中我们除了配置ActionServlet还配置了一些初始化参数信息,首先我们看第一个config参数,这里配置的是/WEB-INF/struts-config.xml,因为要下面传递一个这样一个配置信息,这个xml文件名是struts1标准的名字,所以这里这个初始化信息完全可以删除,如果不用这个标准名称这里就必须要在这里配置。

现在我们配置的是标准名字,所以我们可以删除,这是为什么呢?这里要看ActionServlet源代码才可以。

从图片上我们能看到ActionServlet中已经写好了默认的config信息了,就是标准名字。

所以这里删除也是可以的。

在看下面的debug和detail参数,这两个参数信息是有关日志信息级别的设置,主要关于解析配置文件/WEB-INF/struts-config.xml级别的初始化参数。

这里这两个参数可以完全去掉也不影响。

最后还有一个load-on-startup配置,这个是初始化servlet级别的初始化信息,这个参数如果大于等于0就是说明在服务器一启动就把servlet初始化,也就是调用ActionServlet的init方法,这个也可以到ActionServlet的源代码中去查找。

当ActionServlet初始化的时候就会读取/WEB-INF/struts-config.xml信息到内存中,读到内存是以什么样的形式展现的呢?我们现在可以看一下以前博客的那个mvc实例,那里面读取配置文件中的信息是以Actionmapping的形式展现的。

另外servlet-mapping的配置就不讲解了,这个都知道就是匹配url路径的,当遇到url-pattern的路径时候就会实例化Actionservlet。

通过这篇文章我们知道了当我们请求的时候ActionServlet是怎样实例化的,也知道为什么我们要配置web.xml信息了。

struts1实例教程[1]

struts1实例教程[1]

本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅《Struts 2系列教程》来比较Struts 1.x和Struts 2.x的相同点和不同点。

在这篇文章中将以一个简单的例子(mystruts)来演示如何使用MyEclipse来开发、运行Struts程序,并给出了解决ActionForm出现乱码问题的方法。

读者可以从本文中了解开发Struts 1.x程序的基本过程。

一、本文给出的程序要实现什么功能mystruts是一个录入和查询产品信息的程序。

为了方便起见,本例中的产品信息表只包括了产品ID、产品名称和产品价格三个字段。

mystruts的主要功能如下:1. 接受用户输入的产品ID、产品名称和产品价格。

2. 验证这些字段的合法性。

如果某些字段的输入不合法(如未输入产品ID),程序会forward到一个信息显示页,并显示出错原因。

3. 如果用户输入了正确的字段值,程序会将这些字段值保存到数据库中,并显示“保存成功”信息。

4. 用户输入产品名称,并根据产品名称进行模糊查询。

如果存在符合要求的产品信息。

程序会以表格形式显示这些产品的信息,同时显示记录数。

如果未查到任何记录,会显示“没有符合要求的记录!”信息。

二、编写程序前的准备工作1. 建立数据库在编写程序之前,需要建立一个数据库(struts)和一个表(t_products),建立数据库和表的SQL脚本如下所示:# 建立数据库strutsCREATE DATABASE IF NOT EXISTS struts DEFAULT CHARACT ER SET GBK;# 建立表t_productsCREATE TABLE IF NOT EXISTS struts.t_products (product_id varchar(4) NOT NULL,product_name varchar(50) NOT NULL,price float NOT NULL,PRIMARY KEY (product_id)) ENGINE=InnoDB DEFAULT CHARSET=gbk;2 建立一个支持struts1.x的samples工程用MyEclipse建立一个samples工程(Web工程),现在这个samples 工程还不支持Struts1.x(没有引入相应的Struts jar包、struts-config.xml 文件以及其他和Struts相关的配置)。

struts1(跳转演示实例)

struts1(跳转演示实例)

Struts1的浅显认识Struts的原理略一、struts1的环境配置需要配置的文件有web.xml和struts-config.xml1、导入相关的jar包,可以去官网下载。

下载好的包导入WEB-INFO/lib下2、配置web.xml,配置说明如下:主要配置struts和mapping(映射),struts配置用到的标签是<servlet>(配置servlet的属性)、<servlet-mapping>(将servlet映射到文件中,用于映射servlet),然后在其中配置<servlet-name>、<servlet-class>、<init-param>、<load-on-startup>、<url-pattern>3、配置struts-config.xml,配置说明如下:主要配置在<struts-config>里面配置<form-beans>、<action-mappings>。

其实最重要的是配置<form-beans>内的<form-bean>以及<action-mappings>内的<action>。

<form-beans>主导数据的获取,而<action>用于对业务的处理方式的定义。

配置好这三项,环境算是OK了。

二、struts2实例(简单登陆)1、配置文件web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><welcome-file-list><welcome-file>Login.jsp</welcome-file></welcome-file-list><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/lib/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>2</param-value></init-param><init-param><param-name>detail</param-name><param-value>2</param-value></init-param><load-on-startup>2</load-on-startup></servlet><!-- Standard Action Servlet Mapping --><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>2、配置文件struts-config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration1.3//EN""/dtds/struts-config_1_3.dtd"><struts-config><form-beans><form-bean name="LoginForm"type="com.Login.form.loginForm"></form-bean></form-beans><action-mappings><action path="/login"name="LoginForm"type="com.Login.action.loginAction"><forward name="LoginSuccess"path="/LoginSuccess.jsp"></forward><forward name="LoginFailue" path="/LoginFailue.jsp"></forward></action></action-mappings></struts-config>3、写JSP页面Login.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'Login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h3>login...</h3><form action="login.do" method="post"><table><tr><td>username:<input type="text" name="username"></td></tr><tr><td>password:<input type="text" name="password"/></td></tr> </table><input type="submit" value="提交"><input type="reset" value="重置"/></form></body></html>LoginFailue.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'Login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h3>login...failue</h3></body></html>LoginSuccess.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'Login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h3>login...success</h3></body></html>3、编写相关类工程的架构loginForm类:package com.Login.form;import org.apache.struts.action.ActionForm;publicclass loginForm extends ActionForm { private String username = null;private String password = null;public String getUsername() {return username;}publicvoid setUsername(String username) { ername = username;}public String getPassword() {return password;}publicvoid setPassword(String password) {this.password = password;}}loginAction类:packagecom.Login.action;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.Login.form.loginForm;public class loginAction extends Action {@OverridepublicActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception {// TODO Auto-generated method stubloginFormloginform = (loginForm)form;if(loginform.getUsername().equals("user")){returnmapping.findForward("LoginSuccess");}else{returnmapping.findForward("LoginFailue");}}}三、关键说明1、Login.jsp中的form表单里的属性action=“/login.do”是根据struts-config.xml里的action配置,<actionpath=”/login”.追源,在web.xml中的struts的配置中,接收*.do的请求响应。

struts1框架搭建demo

struts1框架搭建demo

struts1框架搭建demo使⽤MyEclipse(实现⽤户登录)1.打开MyEclipse,需要注意的是这⾥应该处于MyEclipse Java Enterprise视图;新建⼀个Web Project,输⼊适当的⼯程名字,这⾥输⼊mystruts1,Finish即可。

2.添加struts1.2框架⽀持在mystruts1⼯程上⾯右击,在弹出的菜单中选择MyEclipse -> Add Struts Capabilities…,添加Struts的⽀持。

3.新建三个Jsp页⾯login.jsp<%@ page language="java" contentType="text/html;charset=gb2312"%><%@ taglib uri="/tags-bean" prefix="bean" %><%@ taglib uri="/tags-html" prefix="html" %><%@ taglib uri="/tags-logic" prefix="logic" %><%@ taglib uri="/tags-tiles" prefix="tiles" %><html:html lang="true"><head><title>login.jsp</title><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h2>⽤户登陆</h2><html:form action="login.do" method="post">⽤户名:<html:text property="name"></html:text><br>密码:<html:password property="password"></html:password><br><html:submit value="登陆"></html:submit><html:reset value="重置"></html:reset></html:form></body></html:html>login_success.jsp<%@ page language="java" contentType="text/html;charset=gb2312"%><%@ taglib uri="/tags-bean" prefix="bean" %><%@ taglib uri="/tags-html" prefix="html" %><%@ taglib uri="/tags-logic" prefix="logic" %><%@ taglib uri="/tags-tiles" prefix="tiles" %><html:html lang="true"><head><title>login.jsp</title><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h1>登陆成功!!!</h1></body></html:html>login_failure.jsp<%@ page language="java" contentType="text/html;charset=gb2312"%><%@ taglib uri="/tags-bean" prefix="bean" %><%@ taglib uri="/tags-html" prefix="html" %><%@ taglib uri="/tags-logic" prefix="logic" %><%@ taglib uri="/tags-tiles" prefix="tiles" %><html:html lang="true"><head><title>login.jsp</title><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h1>登录失败!!!</h1></body></html:html>java类--ActionFormpackage demo;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {private String name;private String password;public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}Action类package demo;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;public class LoginAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {LoginForm loginForm = (LoginForm) form;String name=loginForm.getName();String password=loginForm.getPassword();if("admin".equals(name)&&"123".equals(password)){//跳转到成功页return mapping.findForward("suc");}else{//跳转到失败页return mapping.findForward("fal");}}}配置⽂件 web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd" <servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list></web-app>struts-config.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><data-sources /><!-- ActionForm配置 --><form-beans><form-bean name="LoginForm" type="demo.LoginForm"></form-bean></form-beans><global-exceptions /><!-- 全局转发配置 --><global-forwards><forward name="suc" path="/login_success.jsp"></forward><forward name="fal" path="/login_failure.jsp"></forward></global-forwards><!-- Action 配置 --><action-mappings><action path="/login" type="demo.LoginAction" name="LoginForm" scope="request"><forward name="suc" path="/login_success.jsp"></forward><forward name="fal" path="/login_failure.jsp"></forward></action></action-mappings><message-resources parameter="com.demo.struts.ApplicationResources"/></struts-config>部署项⽬,启动tomcat,这⾥就不详细说明!最后打开浏览器,输⼊,ok啦!。

struts2.2.1 + spring 3.0.5 配置与测试例子

struts2.2.1 + spring 3.0.5 配置与测试例子

一、配置Struts1、本配置与测试例子,使用MyEclipse 6.0.1版本软件,创建web工程。

2、把struts 2.2.1的相关jar添加到工程中,如图所示。

1)选择Add External Archives…2)选择jar包Struts 2.2.1核心所包含的文件有8个jar文件,如下图所示。

3、添加配置文件配置文件包括struts.xml和web.xml,两者路径分别为:1)struts.xml:src根目录下。

在没有配置之前文件内容如下:<?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></struts>2)web.xml:WEB-INF目录下。

在没有配置之前,文件内容如下:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>该web.xml是创建web工程的时候产生的。

struts1入门教程

struts1入门教程

1.什么是Struts1基于MVC的轻量级,WEB应用框架2.struts1工作原理a> 初始化: struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.b> 发送请求: 用户提交表单或通过URL向WEB服务器提供请求,请求的数据用HTTP协议传给WEB服务器.c> form填充: Struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中d> 派发请求: 控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给Action的excute()方法e> 处理业务: Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象.服务器通过ActionForward对象进行转发工作f> 返回响应: Action将业务处理的不同结果返回一个目标相应对象给总控制器g> 查找响应: 总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面h> 响应用户: 目标响应对象将结果传递给资源对象,将结果展现给用户struts1原理图:3.开发指南准备工作:1>到/下载struts的安装文件struts-1.3.10-all.zip2>解压struts-1.3.10-all.zip3>创建一个web project,并将上步中解压的lib文件下的jar包引进去4>配置web文件5>新建struts-config.xml6>创建数据库(mysql4. 项目开发4.1 页面制作index.jsp4.2 在struts-config.xml中需要修改4.3 创建com.javakc.struts1.action.StudentAction 业务类4.4 创建com.javakc.struts1.action.StudentForm类1)继承org.apache.struts.action.ActionForm类2)属性名要和表单中的属性名一一对应,并生成其对应的getter、setter方法4.5 在StudentAction中处理提交的请求1) 通过form表单或超链接可以将用户的请求提交到服务器进行处理,在系统架构中,服务器处理用户请求的场地就是StudentAction类的execute方法.4.6 在student_info.jsp中展示数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts1配置实例1 struts1之初来乍到Step1 使用myeclipse向导引入strut1.2web.xml文件里面自动生成代码:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns=/xml/ns/javaeexmlns:xsi="/2001/XMLSchema-instance"version="2.5"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><display-name/><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>Step2 配置文件struts-config.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><data-sources/><form-beans><form-bean name="helloForm"type="com.struts.form.HelloForm"/></form-beans><global-exceptions/><global-forwards/><action-mappings><actionattribute="helloForm"input="/form/hello.jsp"name="helloForm"path="/hello"scope="request"type="com.struts.action.HelloAction"><set-property property="cancellable"value="true"/><forward name="success"path="/form/helloSuccess.jsp"/><forward name="fail"path="/form/helloFail.jsp"redirect="true"/></action></action-mappings><message-resources parameter="com.struts.ApplicationResources"/><!-- 配置第三方控制器,例如配置为spring,则所有的action由spring来管理 --><!-- <controller/> --><!-- 配置插件,例如配置数据校验插件 --><!-- <plug-in className=""/> --></struts-config>对应的逻辑图:Step3 包com.struts.form的HelloForm.java/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl*/package com.struts.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;/*** MyEclipse Struts* Creation date: 03-15-2014** XDoclet definition:* @struts.form name="helloForm"*/public class HelloForm extends ActionForm {/** Generated fields*//** name property */private String name;/** Generated Methods*//*** Method validate* @param mapping* @param request* @return ActionErrors*/public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {// TODO Auto-generated method stubreturn null;}/*** Method reset* @param mapping* @param request*/public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub}/*** Returns the name.* @return String*/public String getName() {return name;}/*** Set the name.* @param name The name to set*/public void setName(String name) { = name;}}包com.struts.action的HelloAction.java/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl*/package com.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.struts.form.HelloForm;/*** MyEclipse Struts* Creation date: 03-15-2014** XDoclet definition:* @struts.action path="/hello" name="helloForm" input="/form/hello.jsp" scope="request" validate="true" */public class HelloAction extends Action {/** Generated Methods*//*** Method execute* @param mapping* @param form* @param request* @param response* @return ActionForward*/public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {HelloForm helloForm = (HelloForm) form;// TODO Auto-generated method stubif(helloForm.getName()==null||helloForm.getName().trim().length()==0){//返回输入页面就是/form/hello.jsp,配置在struts-config.xml中return mapping.getInputForward();}return mapping.findForward("success");}}Step4包/itatis1.1/WebRoot/form下的hello.jsp<%@page language="java"pageEncoding="utf-8"%><%@taglib uri="/tags-bean" prefix="bean"%><%@taglib uri="/tags-html" prefix="html"%><html><head><title>JSP for HelloForm form</title></head><body><html:form action="/hello">name : <html:text property="name"/><html:errors property="name"/><br/> <html:submit/><html:cancel/></html:form></body></html>包/itatis1.1/WebRoot/form下的helloFail.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%@taglib uri="/tags-bean"prefix="bean"%><%@taglib uri="/tags-html"prefix="html"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Fail Jsp</title></head><body>error</body></html>包/itatis1.1/WebRoot/form下的helloSuccess.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%@taglib uri="/tags-bean"prefix="bean"%><%@taglib uri="/tags-html"prefix="html"%><html><head><title>My JSP for helloForm</title></head><body>Hello,${ }.Welcome to Struts world.</body></html>Step5 在浏览器地址栏中输入http://localhost:8080/itatis1.1/hello.do单击Submit按钮上面例子的升华版本提交用户表单信息包/itatis1.1/WebRoot/form下的hello.jsp<%@page language="java"pageEncoding="utf-8"%><%@taglib uri="/tags-bean"prefix="bean"%><%@taglib uri="/tags-html"prefix="html"%><html><head><title>JSP for HelloForm form</title></head><body><html:form action="/hello">姓名 : <html:text property="name"/><b><html:errors property="name"/></b><br/>年龄 : <html:text property="age"/><b><html:errors property="age"/></b><br/>是否通过struts : <html:checkbox property="exprience"/><b><html:errors property="exprience"/></b><br/>爱好: <html:checkbox property="hobby"value="音乐"/>音乐<html:checkbox property="hobby"value="体育"/>体育<html:checkbox property="hobby" value="影视"/>影视<b><html:errors property="hobby"/></b><br/>日期 : <html:text property="date"/><br/>时间 : <html:text property="time"/><br/><html:submit/><html:cancel/></html:form></body></html>包/itatis1.1/WebRoot/form下的helloSuccess.jsp<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%@taglib uri="/tags-bean"prefix="bean"%><%@taglib uri="/tags-html"prefix="html"%><%@taglib uri="/jsp/jstl/core"prefix="c"%><html><head><title>My JSP for helloForm</title></head><body>您好,${ }.<br/><br/>您的年龄是:${helloForm.age }.<br/><c:choose><c:when test="${helloForm.exprience }">你以前用过struts</c:when><c:otherwise>你以前没有用过struts</c:otherwise></c:choose><br/>您的爱好是:<c:forEach items="${helloForm.hobby }"var="hobby">${hobby }</c:forEach><br/>日期:${helloForm.date }<br/>时间:${helloForm.time }<br/></body></html>包com.struts.form下的HelloForm.javapackage com.struts.form;import java.sql.Date;import java.sql.Time;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;/*** @struts.form name="helloForm"*/public class HelloForm extends ActionForm {/** Generated fields*/private String name;private String[] hobby;private int age;private boolean exprience;private Date date;private Time time;/** Generated Methods*//*** Method validate* @param mapping* @param request* @return ActionErrors*/public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {return null;}/*** Method reset* @param mapping* @param request*/public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub}/*** Returns the name.* @return String*/public String getName() {return name;}/*** Set the name.* @param name The name to set*/public void setName(String name) { = name;}public String[] getHobby() {return hobby;}public void setHobby(String[] hobby) {this.hobby = hobby;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public boolean isExprience() {return exprience;}public void setExprience(boolean exprience) { this.exprience = exprience;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public Time getTime() {return time;}public void setTime(Time time) {this.time = time;}}包com.struts.action下的HelloAction.javapackage com.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import mons.beanutils.ConvertUtils;import mons.beanutils.converters.SqlDateConverter;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.struts.form.HelloForm;public class HelloAction extends Action {/*** Method execute* @param mapping* @param form* @param request* @param response* @return ActionForward*/public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) { ConvertUtils.register(new SqlDateConverter(null), java.sql.Date.class);HelloForm helloForm = (HelloForm) form;// TODO Auto-generated method stubif(helloForm.getName()==null||helloForm.getName().trim().length()==0){ //返回输入页面就是/form/hello.jsp,配置在struts-config.xml中return mapping.getInputForward();}return mapping.findForward("success");}}添加包com.ibatisdemo.filter下的类CharacterEncodiingFilter.javapackage com.ibatisdemo.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class CharacterEncodiingFilter implements Filter {private String characterEncoding;private boolean enabled;public void destroy() {characterEncoding=null;}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {if(enabled||characterEncoding!=null){request.setCharacterEncoding(characterEncoding);response.setCharacterEncoding(characterEncoding);}chain.doFilter(request, response);}public void init(FilterConfig config) throws ServletException {characterEncoding=config.getInitParameter("characterEncoding");enabled="true".equalsIgnoreCase(config.getInitParameter("enabled").trim());}}在web.xml文件中添加此过滤器<?xml version="1.0"encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"version="2.5"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><display-name/><filter><filter-name>characterEncodingFilter</filter-name><filter-class>com.ibatisdemo.filter.CharacterEncodiingFilter</filter-class><init-param><param-name>characterEncoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>enabled</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>效果:总结本节主要涉及提交用户信息时表单对象的信息的自动转化(由struts1负责转化,开发人员不需要去强制转化),struts标签和jstl 标签的,另外,本例子还涉及一个字符编码过滤器的编写及配置,下面是struts的常用标签库:1. <SPAN style="FONT-SIZE: large"><%@ page pageEncoding="UT F-8"%>2. <%@ taglib uri="/tags-bean" prefix="bean" %>3. <%@ taglib uri="/tags-bean-el" prefix="bean -el" %>4. <%@ taglib uri="/tags-html" prefix="html" % >5. <%@ taglib uri="/tags-logic" prefix="logic" % >6. <%@ taglib uri="/tags-logic-el" prefix="logic-el" %>7. <%@ taglib uri="/tags-nested" prefix="neste d" %>表单验证在HelloForm中:/*** Method validate* @param mapping* @param request* @return ActionErrors*/public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {ActionErrors errors=new ActionErrors();//保存所有错误信息if(name==null||name.trim().length()==0){errors.add("name",new ActionMessage(""));}if(hobby==null||hobby.length<1){errors.add("hobby",newActionMessage("hello.error.hobby"));}if(age<5){errors.add("age",new ActionMessage("hello.error.age",5));}return errors;}/*** Method reset* @param mapping* @param request*/public void reset(ActionMapping mapping, HttpServletRequest request) {age=5;//初始化数据}在包com.struts的文件ApplicationResources.properties添加=\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7Ahello.error.hobby=\u7231\u597D\u5FC5\u987B\u586B\u5199hello.error.age=\u5E74\u9F84\u4E0D\u80FD\u5C0F\u4E8E5\u5C81效果:提交对象属性提交数据量很大时,我有必要把某些对象的属性在前台用‘对象.属性’的形式进行提交,这样后台不会因为属性多而烦恼。

相关文档
最新文档