了解Struts1.1介绍

2016-02-19 13:40 6 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐了解Struts1.1介绍,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

MVC是Model,View,Controller的缩写,MVC是Application开发的设计模式,也就是大家所知道的Model2.在MVC的设计模式中,要求在Application开发中你把商业逻辑,界面显示,数据分离。也就是分别在Model,View,Controller实现:数据,控制(商业逻辑),显示(页面显示).
  
  在以前或者说传统的Web Application开发方式当中,如ASP,PHP,jsp(Model 1)开发当中,我们在Asp(Php,Jsp)中实现一切,如:从数据库中取到我们需要的数据,并根据数据之间的关联和实际的需要按照某种方式把他显示在页面中以及从页面提交的表单中提取数据,根据商业逻辑从数据库查询相关数据,或者把数据写入数据库。也就是说我们在Asp(Php,Jsp)实现一切包括:界面显示,商业逻辑,数据存取。这样带来的后果就是你所写的Asp(Php,Jsp)没有层次,并且Html和Script(javascript、JScript,Asp、Php、Jsp源代码)相互嵌套.可维护性差,最要命的是在Web Application通常显示一块是由美工完成的,很多时候也是你先写好Asp、Php、Jsp然后美工进行美化,很有可能你发现经过美工处理完以后你的代码已经面目全非了。你不得不把你的代码重新组织。
  在MVC模式中这个问题的解决办法是:View中负责显示,View一般从Controller得到已经处理过的数据,然后显示在页面当中,应该说这样在Html中嵌套很少的Script.基本上美工的修改不大会废掉你的劳动成果。
  在使用Java开发Web Application有几种符合MVC设计模式的开发方式让你选择。
  1:Jsp+Servlet+JavaBean(EJB)
  2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
  3:TDK(Turbine,Velocity...)
  4:Xsp
  5:Jsp+Struts+JavaBean(EJB)
  我个人认为后面两种比较好,其他几种都有可取的地方非凡是使用TDK因为有一个比较好的工具可以自动生成很多代码,至于它的缺点在后面几种开发方式的比较当中我会介绍。
  
  Struts1.1的新功能
  Struts1.1与1.0相比加了一些很不错的功能。最主要是表单验证上功能增强。在Struts1.1数据的验证不象以前在Action中在validator具体实现,而是在validation.XML通过配置实现这样做的好处就是重用性加强了很多。
  
  Struts1.1实现的主要组成
  主要包括:Action,ActionForm,ActionMapping,ActionForward,开发当中最主要写的是Action,ActionForm根据需要可以写或不写。下面我就一一具体介绍。
  Action
  An Action is an adapter between the contents of an incoming HTTP request and the corresponding business logic that should be executed to process this request.
  上面是Struts开发小组对Action的描述,说Action实际上Request和Business Logic中间的适配器.通俗的说就是从表单中取到数据并穿给商业逻辑操作进行一系列的操作,然后返回相应的操作信息。
  
  ActionForm
  An ActionForm is a JavaBean optionally associated with one or more ActionMappings. SUCh a bean will have had its properties initialized from the corresponding request parameters before the corresonding action's execute() method is called.
  ActionForm实际上就是把从Request取到的数据封装并进行校验,然后把合法的数据给Action进行处理。实际上ActionForm除了进行数据校验之外另外更重要的是在表单回写的时候作用很大。反而在1.1以后数据校验的大部分工作在validation.xml去实现。
  
  ActionMapping,ActionForward
  ActionMapping主要是用与配置和描述相关属性使用的。先看下在struts-config.xml
  中的配置文件一段配置描述:
  action-mappings>
  !-- Registration Action --
  action  path="/usereg"
  type="com.bingo.finance.action.UseregAction"
  name="useregForm"
  scope="request"
  validate="true"
  input="/usereg.jsp">
  forward name="success"   path="/msg.jsp"/>
  /action>
  /action-mappings>
  ActionMapping就是用来描述一个Action的URL、具体实现的文件、相对应的ActionForm 数据属性(request or session)、是否需要进行数据校验和回写、以及处理完成后可能跳转的URL.
  而ActionForward你就可以理解为Action 操作完成后的跳转URL,Action在处理完相关操作后,返回的是一个ActionForward也就是告诉Struts我做完这个操作下一步到哪儿去。
  
  构建Struts1.1运行环境
  我的配置是居于Tomcat4.0以上版本讨论,其他的AppServer大致相同。
  
  1:得到Struts1.1
  http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b1/jakarta-struts-1.1-b1.zip
  
  2:设置
  把Struts.jar Copy到$Tomcat_home/common/lib 或你使用Struts的Appaction下的WEB-INF/lib下
  在你使用Struts的Appaction下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/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>2/load-on-startup>
  /servlet>
  
  taglib>
  taglib-uri>/WEB-INF/struts-html.tld/taglib-uri>
  taglib-location>/WEB-INF/struts-html.tld/taglib-location>
  /taglib>
  
  taglib>
  taglib-uri>/WEB-INF/struts-logic.tld/taglib-uri>
  taglib-location>/WEB-INF/struts-logic.tld/taglib-location>
  /taglib>
  
  !-- Nested Tag Library Descriptor --
  taglib>
  taglib-uri>/WEB-INF/struts-nested.tld/taglib-uri>
  taglib-location>/WEB-INF/struts-nested.tld/taglib-location>
  /taglib>
  
  !-- Template Tag Library Descriptor --
  taglib>
  taglib-uri>/WEB-INF/struts-template.tld/taglib-uri>
  taglib-location>/WEB-INF/struts-template.tld/taglib-location>
  /taglib>
  Struts1.1中提供了很具体的例子,你可以仔细看看.
  接下来你该根据需要配置struts-config.xml,以下是一个简单的例子
  ?xml version="1.0" encoding="ISO-8859-1" ?>
  
  !DOCTYPE struts-config PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
  "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
  
  struts-config>
  
  !-- ========== Form Bean Definitions =================================== --
  form-beans>
  
  !-- Registration form bean --
  form-bean   name="useregForm"
  type="com.bingo.finance.action.UserForm"/>
  
  /form-beans>
  
  !-- ========== Global Forward Definitions ============================== --
  global-forwards>
  forward  name="error"   path="/error.jsp"/>
  /global-forwards>
  
  !-- ========== Action Mapping Definitions ============================== --
  action-mappings>
  
  !-- Registration Action --
  action  path="/usereg"
  type="com.bingo.finance.action.UseregAction"
  name="useregForm"
  scope="request"
  validate="true"
  input="/usereg.jsp">
  forward name="success"   path="/msg.jsp"/>
  /action>
  /action-mappings>
  
  !-- ========== Message Resources Definitions =========================== --
  
  message-resources
  parameter="com.bingo.finance.common.DisplayMsg"/>
  
  !-- ========== Plug Ins Configuration ================================== --
  
  !-- Add multiple validator resource files by setting the pathname property --
  plug-in className="org.apache.struts.validator.ValidatorPlugIn">
  set-property property="pathname" value="/WEB-INF/validator-rules.xml"/>
  set-property property="pathname" value="/WEB-INF/validation.xml"/>
  /plug-in>
  
  /struts-config>
  上面的英文我相信你能够看懂。我就不做解释了。你需要继续配置validation.xml了,看如下
  简单的例子.
  form-validation>
  formset>
  form  name="useregForm">
  field  property="username"
  depends="required,mask,minlength,maxlength">
  arg0 key="common_username"/>

来源:http://www.tulaoshi.com/n/20160219/1604934.html

延伸阅读
标签: Java JAVA基础
简介: 我看到很多项目中,开发者实现了自己的MVC框架,并不是因为他们想做同Struts根本不同的东西,而是因为他们并没有意识到如何扩展Struts。开发自己的MVC框架可以获得全部的控制权,但是这也意味着需要很多资源来实现它(人力物力),在紧张的日程安排下,有时候这是不可能的。 Struts不仅仅是一个强大的框架,...
Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的。 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。 可以把Fragment设计成可以在多个Activity中复用的模块。 当开发的应用程序同时适用于平板电脑和手机时,可...
1. 介绍 1.1 Model-View-Controller (MVC) 设计模式 FIXME - 需要一个对该模式一般性的介绍。(译注:可以参考机械工业出版社的《设计模式》。) 1.2 将MVC概念映射到Struts组件中 !-- frame contents -- !-- /frame contents -- Struts 的体系结构实现了Model-View-Controller...
http://community.csdn.net/EXPert/topic/3517/3517995.XML?temp=.2898371 这是我的第一个Struts应用,仅仅用于用户注册;注册的用户存入数据库中。 参考《jsp应用开发详解》电子工业出版社 PART I/III /** SQL Server 2000 Tomcat 4.1 Struts jakarta-struts-1.1 Editplus */ //----数据库脚...

经验教程

514

收藏

9
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部