Struts1x 浅析Word下载.docx

上传人:b****3 文档编号:16790683 上传时间:2022-11-26 格式:DOCX 页数:15 大小:67.36KB
下载 相关 举报
Struts1x 浅析Word下载.docx_第1页
第1页 / 共15页
Struts1x 浅析Word下载.docx_第2页
第2页 / 共15页
Struts1x 浅析Word下载.docx_第3页
第3页 / 共15页
Struts1x 浅析Word下载.docx_第4页
第4页 / 共15页
Struts1x 浅析Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Struts1x 浅析Word下载.docx

《Struts1x 浅析Word下载.docx》由会员分享,可在线阅读,更多相关《Struts1x 浅析Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

Struts1x 浅析Word下载.docx

Struts的工作原理,如下图2所示:

控制:

通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。

ActionServlet是一个通用的控制组件。

这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。

它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。

另外控制组件也负责用相应的请求参数填充ActionFrom(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。

动作类实现核心商业逻辑,它可以访问javabean或调用EJB。

最后动作类把控制权传给后续的JSP文件,后者生成视图。

所有这些控制逻辑利用Struts-config.xml文件来配置。

视图:

主要由JSP生成页面完成视图,Struts提供丰富的JSP标签库:

Html,Bean,Logic,tiles等,这有利于分开表现逻辑和程序逻辑。

模型:

模型以一个或多个javabean的形式存在。

这些bean分为三类:

ActionForm、Action、JavaBeanorEJB。

ActionForm通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。

Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用JavaBean或EJB等。

流程:

在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。

每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。

核心:

Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。

 

二、Struts安装配置

1、Struts的安装比较简单,下面的以Tomcat4.1.24为例,讲述安装过程。

首先请到http:

//jakarta.apache.org/Struts下载Struts,建议使用release版,现在最高版本为1.1,下载后得到的是一个ZIP文件。

将ZIP包解开,可以看到这个目录:

lib和webapps,webapps下有一些WAR文件。

假设你的Tomcat装在c:

\Tomcat下,则将那些WAR文件拷贝到C:

\Tomcat\webapps,重新启动Tomcat即可。

打开浏览器,在地址栏中输入:

http:

//localhost:

8080/Struts-example/index.jsp,若能见到“poweredbyStruts”的深蓝色图标,即说明成功了。

这是Struts自带的一个例子,附有详细的说明文档,可以做为初学者的入门教程。

另外,Struts还提供了一系统实用对象:

XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息等

2、关于Struts配置,由于我是采用Jbuilder9为开发工具,这里主要说一下Struts在Jbuilder中配置:

Jbuilder本身自带已经集成了Struts1.0,但目前的开发大部分都是在Struts1.1下,所以下面就介绍Struts1.1在Jbuilder中的配置:

1、下载

jakarta-struts-1.1.zip包;

jakarta-struts-1.1-src.zip包

2、将jakarta-struts-1.1.zip包解压到C:

\JBuilder9\thirdparty目录下

jakarta-struts-1.1-src.zip包解压到C:

\JBuilder9\extras目录下

3、启动jbuilder9

4、配置Library

(1)选择菜单tools\ConfigureLibraries

(2)新建一个Library

(3)在NewLibraryWizard对话框中,

Name输入:

struts1.1,

location可选:

UserHome,

Librarypaths:

add加入C:

\JBuilder9\thirdparty\jakarta-struts-1.1\lib\struts.jar

(4)确定创建Library

(5)选中struts1.1,修改LibrarySettings

Class:

C:

Source:

\JBuilder9\extras\jakarta-struts-1.1-src\src\share

DocumentationC:

\JBuilder9\thirdparty\jakarta-struts-1.1\webapps\struts-documentation.war\api

RequiredLibrary:

Framework:

在Framework下拉框中,选择struts,会自动出现6个taglib。

struts-bean

struts-html

struts-logic

struts-template

struts-tiles

struts-nested

(6)点击OK,创建Library成功。

关于在其他工具上的配置,如Eclipse网上有很多资料,自己google一下就可以了

三、开发步骤

为了避免流水仗式的称述,枯燥无味。

让你尽早看到自己的成果,这里将引用一个简单的例子,让你去熟悉基于Struts的开发步骤:

(这里我采用Jbuilder开发环境,可以加快开发速度)

1、实例描述:

一个用户注册系统,用户通过网页输入相关信息:

注册ID号,密码,EMAIL,若注册成功,则显示注册信息,反之出现注册失败提示信息。

以下是相关文件的部分核心代码和创建步骤

2、建立一个Web应用:

首先点选Jbuilder主菜单File|NewProject建立一个StrutsDemo工程,接着选File|New选择Web页中的WebApplication建立Web应用程序,这时要在Jsp/Servletframeworks里勾选Struts1.1(struts1.1)然后OK

3、创建RegUserForm

点选Jbuilder下的NewWebActionForm,在下一步中添加Form的属性,然后下一步,选中AddTostruts_config.xml,然后Finish;

会自动生成Form文件,并在Struts_config.xml中将你FormBean加进来,生成的FormBean文件如下:

FormBean:

RegUserForm

packagestrutsDemo;

importorg.apache.struts.action.*;

importjavax.servlet.http.*;

publicclassRegUserFormextendsActionForm{

privateStringaccount;

privateStringemail;

privateStringpassword;

publicStringgetAccount(){

returnaccount;

}

publicvoidsetAccount(Stringaccount){

this.account=account;

publicStringgetEmail(){

returnemail;

publicvoidsetEmail(Stringemail){

this.email=email;

publicStringgetPassword(){

returnpassword;

publicvoidsetPassword(Stringpassword){

this.password=password;

publicActionErrorsvalidate(ActionMappingactionMapping,HttpServletRequesthttpServletRequest){

/**@todo:

finishthismethod,thisisjusttheskeleton.

这里验证account与password是否为空

*/

ActionErrorserrors=newActionErrors();

//Accountmustbeentered

if((account==null)||(account.length()<

1)){

errors.add("

ACCOUNT_ERROR"

newActionError("

errors.account.required"

));

//SecretPhrasemustbeentered

if((password==null)||(password.length()<

errors.add("

PASSWORD_ERROR"

newActionError("

errors.password.required"

returnerrors;

publicvoidreset(ActionMappingactionMapping,HttpServletRequesthttpServletRequest){

account=null;

email=null;

password=null;

4、创建RegUserAction

点选Jbuilder下的NewWebAction,在下一步中的FomBeanName中选刚才创建的RegUserForm,然后Finish,修改文件如下:

ActionBean:

RegUserAction

packagestrutsDemo;

publicclassRegUserActionextendsAction{

publicActionForwardexecute(

ActionMappingmapping,

ActionFormform,

HttpServletRequestrequest,

HttpServletResponseresponse)

throwsException{

ActionErrorserrors=newActionErrors();

RegUserFormregUserForm=(RegUserForm)form;

Stringaccount=regUserForm.getAccount();

Stringpassword=regUserForm.getPassword();

Stringemail=regUserForm.getEmail();

if(email==null)email="

"

;

//注册信息到数据库略

if("

account"

.equals(account))//这里只是静态判断帐号不能为account

{

ACCOUNT_REPEAT"

newActionError("

errorsaccount.repeat"

saveErrors(request,errors);

returnmapping.getInputForward();

returnmapping.findForward("

success"

);

}

5、创建Jsp文件reguser.jsp:

result.jsp

注册页面:

reguser.jsp

<

%@tagliburi="

/WEB-INF/struts-bean.tld"

prefix="

bean"

%>

<

/WEB-INF/struts-html.tld"

html"

%@pagecontentType="

text/html;

charset=GBK"

html:

html>

head>

title>

reguser<

/title>

/head>

body>

h1>

JBuilderGeneratedStrutsJSPforActionFormstrutsDemo.RegUserForm<

/h1>

hrnoshade="

noshade"

/>

errors/>

p>

formaction="

/regUserAction.do"

method="

POST"

>

account:

br>

textproperty="

/>

password:

passwordproperty="

password"

Email:

email"

submitproperty="

submit"

value="

Submit"

resetvalue="

Reset"

/html:

form>

/body>

注册结果页面:

result.jsp

result

bodybgcolor="

#ffffff"

RegisterFormResults<

Hello<

bean:

writename="

regUserForm"

property="

<

/p>

strong>

Yourpassword:

/strong>

Youremailis:

/html>

6、修改配置文件Struts_config.xml

Struts-config.xml:

?

xmlversion="

1.0"

encoding="

UTF-8"

!

DOCTYPEstruts-configPUBLIC"

-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN"

"

//jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"

struts-config>

form-beans>

form-beanname="

type="

strutsDemo.RegUserForm"

/form-beans>

action-mappings>

actionname="

strutsDemo.RegUserAction"

validate="

true"

input="

/reguser.jsp"

path="

/regUserAction"

>

forwardname="

/result.jsp"

/action>

/action-mappings>

--==========MessageResourcesDefinitions=====================-->

message-resourcesparameter="

strutsDemo.ApplicationResources"

/struts-config>

另外,注意上面配置文件中的

所以还要创建一个ApplicationResources.properties文件,放到

WEB-INF\classes\strutsDemo下,一些消息信息可以都放在这个文件里,Struts通过它来支持国际化,我们在ApplicationResources.properties文件添加:

errors.account.required=accountisrequired.

errors.password.required=passwordisrequired.

errorsaccount.repeat=accountisrepeat

到此,一个基于Struts框架的程序就完成了,当然只是一个简单的示例,像一些其他的比如通过validation.xml信息验证,在这里并没有出现,目的只是让你认识一个基本的开发过程。

下面在Jbuilder里编译打包成strutsDemo.war,放到C:

/tomcat/webapps下,在浏览器里输入http:

8080/strutsDemo/reguser.jsp就可以看到你的结果了

四、常见问题与解决方法

实践是发现问题和解决问题的最好方法。

在开发过程中,也遇到了一些问题,这里就将目前遇到的问题和我自己的解决方法总结出来,作为以后的参考,当然如果还有好的方法的话,欢迎大家加进来,共同学习进步吧!

1、如何支持中文

2、如何扩展validation.xml验证文件,写自己的验证函数

3、在写完jsp页面后,测试运行时,找不到Formbean或页面不能显示

4、对一些类似的操作想放在一起,不想每个操作都写一个Action

5、strturs_config.xml文件中的<

action>

scope属性的值

6、<

write>

标签中Filter属性问题(想过滤一些其他struts没提供的特殊字符)

7、如何转换ApplicationResources.properties文件中中文提示消息问题

8、saveErrors(HttpServletRequestrequest,ActionErrorserrors)函数使用问题

9、Struts分页问题

如何支持中文

关于Struts支持中文的问题,大多都是写个过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1