javastruts安装配置说明文档格式.docx
- 文档编号:17183892
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:15
- 大小:24.53KB
javastruts安装配置说明文档格式.docx
《javastruts安装配置说明文档格式.docx》由会员分享,可在线阅读,更多相关《javastruts安装配置说明文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
在视图层,Struts能够与JSP,VelocityTemplates,XSL等等这些表示层组件想结合。
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支持中文的问题,大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javastruts 安装 配置 说明