严重警告:如果你跳过了上篇,在本篇遇到了的任何难题,本人概不负责<!----><o:p></o:p>
开场白: 首先我希望你明白Struts是怎么工作的。在jsp页面上,当我们发生了提交动作(你就理解为当按钮按下的时候),页面上是数据(比如:文本框、复选框、单选框、下拉筐等中的内容)会自动写入到form中,当页面需要数据的时候也从form中取得。而action可以从form中取得相关的数据,并可以对这些数据进行处理,并把处理的结果也放到form中。<o:p></o:p>
以前我们这样定义一个文本框:<o:p></o:p>
<input type="text" name="str1"><o:p></o:p>
现在利用了Struts的标签库,我们这样定义一个文本框<o:p></o:p>
<html:text property="str1" /><o:p></o:p>
这样定义的文本框,当页面上的submit按钮被按下的时候,这个文本框中的内容会自动的被放到from中,并且是放到form的一个str1属性中,为此,form会定义这个属性的get方法和set方法<o:p></o:p>
用例子来说明问题:<o:p></o:p>
工程的名字就叫:user<o:p></o:p>
(多么的希望你知道把你的user放在什么地方,user里面有些什么东西)<o:p></o:p>
这个例子的外观效果是这样的,首先第一个页面有两个文本框:分别输入你的姓(FirstName)和你的名(LastName),还有一个“提交”按纽,当按纽按下的时候,会调用另外的页面把名字姓和名整和起来显示出来。如果姓或者名有一个没有输入数据就“提交”的话,则转向另外的警告页面。不知道我说清楚了“需求”没有,下面让我们来看看效果吧。<o:p></o:p>
你需要什么:请把下面的1和2的所有东西都放在WEB-INF下,让他们并肩站者、平起平坐,而且以后的程序中,我再不说了,请你自觉的把它们放在你的应用下的WEB-INF下<o:p></o:p>
1:struts的标签库文件,这些东西如果你又找不到的话,请你还是给我email吧<o:p></o:p>
struts-bean.tld、 struts-config.xml.bak、struts-html.tld、struts-logic.tld、struts-nested.tld、struts-template.tld、struts-tiles.tld<o:p></o:p>
2:两个xml配置文件<o:p></o:p>
web.xml的内容如下,如果以后我不特别的说明,web.xml的内容就一下面的为准<o:p></o:p>
<?xml version="1.0" encoding="gb2312"?><o:p></o:p>
<o:p> </o:p>
<!DOCTYPE web-app<o:p></o:p>
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"<o:p></o:p>
"http://java.sun.com/dtd/web-app_2_3.dtd"><o:p></o:p>
<o:p> </o:p>
<web-app><o:p></o:p>
<o:p> </o:p>
<!-- Action Servlet Configuration --><o:p></o:p>
<servlet><o:p></o:p>
<servlet-name>action</servlet-name><o:p></o:p>
<!-- Specify servlet class to use:<o:p></o:p>
- Struts1.0.x: ActionComponentServlet<o:p></o:p>
- Struts1.1: ActionServlet<o:p></o:p>
- no Struts: TilesServlet<o:p></o:p>
--> <o:p></o:p>
<!-- <servlet-class>org.apache.struts.tiles.ActionComponentServlet</servlet-class> --> <o:p></o:p>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <o:p></o:p>
<!-- <servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class> --><o:p></o:p>
<o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify configuration file names. There can be several comma <o:p></o:p>
separated file names<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-config</param-name><o:p></o:p>
<param-value>/WEB-INF/tiles-defs.xml,<o:p></o:p>
/WEB-INF/tiles-s-defs.xml<o:p></o:p>
</param-value><o:p></o:p>
</init-param><o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify Tiles debug level.<o:p></o:p>
O : no debug information<o:p></o:p>
1 : debug information<o:p></o:p>
2 : more debug information<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-debug</param-name><o:p></o:p>
<param-value>1</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify Digester debug level. This value is passed to Digester<o:p></o:p>
O : no debug information<o:p></o:p>
1 : debug information<o:p></o:p>
2 : more debug information<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-parser-details</param-name><o:p></o:p>
<param-value>0</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p></o:p>
<!-- Tiles Servlet parameter <o:p></o:p>
Specify if xml parser should validate the Tiles configuration file.<o:p></o:p>
true : validate. DTD should be specified in file header.<o:p></o:p>
false : no validation<o:p></o:p>
--> <o:p></o:p>
<init-param><o:p></o:p>
<param-name>definitions-parser-validate</param-name><o:p></o:p>
<param-value>true</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p> </o:p>
<!-- Struts configuration, if Struts is used --><o:p></o:p>
<init-param><o:p></o:p>
<param-name>config</param-name><o:p></o:p>
<param-value>/WEB-INF/struts-config.xml</param-value><o:p></o:p>
</init-param><o:p></o:p>
<init-param><o:p></o:p>
<param-name>validate</param-name><o:p></o:p>
<param-value>true</param-value><o:p></o:p>
</init-param><o:p></o:p>
<init-param><o:p></o:p>
<param-name>debug</param-name><o:p></o:p>
<param-value>2</param-value><o:p></o:p>
</init-param><o:p></o:p>
<init-param><o:p></o:p>
<param-name>detail</param-name><o:p></o:p>
<param-value>2</param-value><o:p></o:p>
</init-param><o:p></o:p>
<o:p></o:p>
<load-on-startup>2</load-on-startup><o:p></o:p>
</servlet><o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<!-- Action Servlet Mapping --><o:p></o:p>
<servlet-mapping><o:p></o:p>
<servlet-name>action</servlet-name><o:p></o:p>
<url-pattern>*.do</url-pattern><o:p></o:p>
</servlet-mapping><o:p></o:p>
<o:p> </o:p>
<session-config><o:p></o:p>
<session-timeout>60</session-timeout><o:p></o:p>
</session-config><o:p></o:p>
<o:p> </o:p>
<!-- The Welcome File List --><o:p></o:p>
<welcome-file-list><o:p></o:p>
<welcome-file>login.jsp</welcome-file><o:p></o:p>
</welcome-file-list><o:p></o:p>
<o:p> </o:p>
<!-- Struts Tag Library Descriptor --><o:p></o:p>
<taglib><o:p></o:p>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri><o:p></o:p>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location><o:p></o:p>
</taglib><o:p></o:p>
<o:p></o:p>
<taglib><o:p></o:p>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri><o:p></o:p>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location><o:p></o:p>
</taglib><o:p></o:p>
<o:p></o:p>
<taglib><o:p></o:p>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri><o:p></o:p>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location><o:p></o:p>
</taglib><o:p></o:p>
<o:p></o:p>
<taglib><o:p></o:p>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri><o:p></o:p>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location><o:p></o:p>
</taglib><o:p></o:p>
<o:p></o:p>
<!--database resource configuration--><o:p></o:p>
<resource-ref><o:p></o:p>
<description>zchFive database connection pool </description><o:p></o:p>
<res-ref-name>jdbc/zchFiveDB</res-ref-name><o:p></o:p>
<res-type>javax.sql.DataSource</res-type><o:p></o:p>
<res-auth>Container</res-auth><o:p></o:p>
</resource-ref><o:p></o:p>
<o:p></o:p>
</web-app><o:p></o:p>
struts-config.xml的内容如下,这个配置的内容会根据你的应用不同而不同,但格式会相同<o:p></o:p>
<?xml version="1.0" encoding="ISO-8859-1" ?><o:p></o:p>
<o:p> </o:p>
<!DOCTYPE struts-config PUBLIC<o:p></o:p>
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"<o:p></o:p>
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><o:p></o:p>
<!--<o:p></o:p>
This is the Struts configuration file for the example application,<o:p></o:p>
using the proposed new syntax.<o:p></o:p>
<o:p> </o:p>
NOTE: You would only flesh out the details in the "form-bean"<o:p></o:p>
declarations if you had a generator tool that used them to create<o:p></o:p>
the corresponding Java classes for you. Otherwise, you would<o:p></o:p>
need only the "form-bean" element itself, with the corresponding<o:p></o:p>
"name" and "type" attributes.<o:p></o:p>
--><o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<struts-config><o:p></o:p>
<o:p> </o:p>
<!-- ========== Form Bean Definitions =================================== --><o:p></o:p>
<form-beans><o:p></o:p>
<form-bean name="userForm" type="UserForm"><o:p></o:p>
</form-bean> <o:p></o:p>
</form-beans><o:p></o:p>
<o:p> </o:p>
<!-- ========== Global Forward Definitions ============================== --><o:p></o:p>
<global-forwards><o:p></o:p>
<o:p> </o:p>
</global-forwards><o:p></o:p>
<o:p></o:p>
<!-- ========== Action Mapping Definitions ============================== --><o:p></o:p>
<action-mappings> <o:p></o:p>
<o:p></o:p>
<action path="/execute"<o:p></o:p>
type="UserAction"<o:p></o:p>
name="userForm"<o:p></o:p>
scope="request"<o:p></o:p>
validate="false"><o:p></o:p>
<forward name="err" path="/error.jsp"/><o:p></o:p>
<forward name="ok" path="/success.jsp"/><o:p></o:p>
</action> <o:p></o:p>
</action-mappings> <o:p></o:p>
</struts-config><o:p></o:p>
输入数据的页面<o:p></o:p>
in.jsp<o:p></o:p>
<%@ page contentType="text/html; charset=gb2312" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><o:p></o:p>
<html:html><o:p></o:p>
<head><o:p></o:p>
<title>Login</title><o:p></o:p>
</head><o:p></o:p>
<o:p></o:p>
<body><o:p></o:p>
<center><o:p></o:p>
<pre><o:p></o:p>
<html:form action="execute.do" method="post"><o:p></o:p>
<h3> 请输入 </h3><o:p></o:p>
<o:p></o:p>
FirstName: <html:text property="str1" size="12"/><o:p></o:p>
<o:p></o:p>
LastName: <html:text property="str2" size="12"/><o:p></o:p>
<o:p></o:p>
<html:submit value="提交"/> <html:reset value="重置"/><o:p></o:p>
</html:form><o:p></o:p>
</pre><o:p></o:p>
</center><o:p></o:p>
</body><o:p></o:p>
</html:html><o:p></o:p>
显示正确结果的页面<o:p></o:p>
分享到:
相关推荐
第五章:struts2标签库
在阅读这篇博客时,读者可以学习到如何配置Struts的配置文件(struts-config.xml),如何在Action中调用Lucene API,以及如何在JSP页面上显示搜索结果。 标签"源码 工具"提示我们这篇文章可能包含了实际的代码示例...
IBMStruts2培训PPT (大全集) ...第五章:struts2标签库.ppt 第六章:struts2国际化.ppt 第七章:Struts2验证机制.ppt 第八章:struts2文件上传下载.ppt 第九章:struts2拦截器.ppt + Struts2开发详解.ppt
第八章:struts2文件上传下载.ppt
MLDN 李新华 老师 Java Web基础篇课后习题答案,Java Web高级案例篇全部源码。 这套源码从最基本的JSP页面到Model 1到Model 2,文件上传,EL,JSTL,Ajax,Structs,一点一点的修改讲解。 最后形成一个完整的案例,...
《JavaWeb整合开发完全自学...《JavaWeb整合开发完全自学手册》的重点第二篇Struts、第三篇Hibernate、第四篇Spring采用了相似的行文结构,条理清楚,不仅可作为stepbystep的入门书籍,也可作为读者自学的案头参考书。
为了解决这一问题,社区开发了第三方工具如Struts TestCase,它提供了一套用于模拟Struts1环境的组件。 - **Struts2**: 在Struts2中,可以通过初始化、设置属性和调用方法等方式轻松地测试Action。依赖注入的支持...
轻量级Java EE企业应用实战:Struts2+Spring3+Hibernate
5. **国际化和本地化**:Struts支持国际化,通过资源bundle文件实现不同语言环境下的文本显示。 6. **ActionForm**:ActionForm对象用于收集和验证用户输入,它是模型层和控制器层之间的桥梁。 7. **Exception ...
5. **Plug-in(插件)**: Struts2支持插件机制,允许开发者扩展框架功能,如添加新的拦截器、结果类型等。例如,`struts2-convention-plugin`提供了自动Action映射的便利。 6. **OGNL(Object-Graph Navigation ...
比较流行的一本书,在公司内很受欢迎 比较实用 下半部分,需与上半部分放在一起解压。
5. **Action类和结果**:编写Action类,该类通常会继承自Struts2提供的ActionSupport类,并实现execute方法。执行方法返回一个字符串,代表跳转到的结果页面。 6. **国际化与异常处理**:了解如何在Struts2中实现...
绝对是官网最新版本2012年5月9日下载的,方便大家使用,很不错的资源,期待大家分享,只因我们都是ssh人~(所有相关jar包在:struts-2.3.3-all.zip\struts-2.3.3\lib)docs中都有相应的例子,会告诉你怎么用!...
学习Spring Struts Hibernate 整合开发必看的书
5. **国际化和本地化**:Struts支持多语言环境,书中会讲解如何进行国际化配置和资源文件管理。 6. **异常处理**:介绍如何使用Struts的异常处理机制,包括定义自定义异常类和配置全局异常处理。 7. **最佳实践**...
轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发