<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>J2EE  Architect----Service Oriented  Architecture - Struts/Tiles/Ibatis</title><link>http://blog.csdn.net/SmartTony/category/269203.aspx</link><description>Struts/Tiles/Ibatis</description><dc:language>zh-CN</dc:language><lastUpdateTime>Mon, 21 Apr 2008 16:47:12 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>SmartTony</dc:creator><title>Struts中实现查询结果分页显示 </title><link>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261656.aspx</link><pubDate>Tue, 08 Apr 2008 21:47:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261656.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2261656.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261656.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2261656.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2261656</trackback:ping><description>messagelist.do -&gt; messagelist.jsp 
用 messagelist.do?start=0 来显示第一个页面 
参数说明： 
  list：信息列表 
  start：开始位置 
  page：每页显示的信息数目 
  previous：上页开始位置 
  next：下页开始位置 

MessageListAction 里的 perform 是这样写的： 
------------------------------------------------------------------------------------ 
        int start = Integer.parseInt(request.getParameter("start")); 
        System.out.println ("Start:" + start); 
        int page = 4; 
         
        // create a message list 
        Message[] l&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2261656.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>基于Struts的权限实现</title><link>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261653.aspx</link><pubDate>Tue, 08 Apr 2008 21:45:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261653.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2261653.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261653.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2261653.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2261653</trackback:ping><description>一：概念介绍 

1:)资源
可以使用的系统资源.比如注册用户是一种资源，修改用户信息也是一种资源.
资源在系统中呈现为一棵树.假如用户管理是一个节点.用户注册，用户信息
修改为用户管理的叶子。叶子具有不可分割性.

2:)角色
绑定可操作资源的集合。
比如系统管理员，可以使用全部资源.
一般用户，可以注册和修改查看自己的信息.
角色可以有依赖角色。也就是说现在系统中存在
RoleA,RoleB,RoleC ,RoleD 四种角色.
RoleD 倚赖RoleA
假设一个用户的角色是RoleD.
根据倚赖关系。默认有RoleA 的可使用资源.

3:)用户
系统中的使用者，因为角色可以倚赖，所以一个用户只有一种角色.

二：资源的分配
上述三个概念之间的绑定关系为用户绑定一个角色，角色绑定若干资源.
角色绑定资源有两种绑定，一种是绑定叶子，一种绑定节点。绑定节点有
两种一种只绑定节点下的叶子，一种绑定节点下所有的叶子.在系统中权
限的分配需要做到一个角色可以访问整个资源树中的任意节点和叶子的组合.

三：资源树的构造
我们使用name&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2261653.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>Struts原理与实践</title><link>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261648.aspx</link><pubDate>Tue, 08 Apr 2008 21:42:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261648.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2261648.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/04/08/2261648.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2261648.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2261648</trackback:ping><description>第1部分) 


一、 什么是Struts 

框架（Framework）是可重用的，半完成的应用程序，可以用来产生专门的定制程序。 

您只要细心地研究真实的应用程序，就会发现程序大致上由两类性质不同的组件组成，一类与程序要处理的具体事务密切相关，我们不妨把它们叫做业务组件；另一类是应用服务。比如说：一个税务征管系统和一个图书管理系统会在处理它们的业务方面存在很大的差异，这些直接处理业务的组件由于业务性质的不同不大可能在不同的系统中重用，而另一些组件如决定程序流向的控制、输入的校验、错误处理及标签库等这些只与程序相关的组件在不同的系统中可以很好地得到重用。人们自然会想要是把这些在不同应用程序中有共性的一些东西抽取出来，做成一个半成品程序，这样的半成品就是所谓的程序框架，再做一个新的东西&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2261648.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>【开发经验】Struts常见错误及原因分析</title><link>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157154.aspx</link><pubDate>Fri, 07 Mar 2008 19:53:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157154.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2157154.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157154.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2157154.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2157154</trackback:ping><description>1 异常 javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login （/Login是你的action名字） 
可能原因:action没有再struts-config.xml 中定义，或没有找到匹配的action，例如在JSP文件中使用 处理:如果出现上述异常，请查看struts-config.xml中的定义部分，有时可能是打错了字符或者是某些不符合规则，可以使用struts console工具来检查。 

2 异常 org.apache.jasper.JasperException: Cannot retrieve definition for form bean null 
 
可能原因:  这个异常是因为Struts根据struts-config.xml中的mapping没有找到action期望的form bean。大部分的情况可能是因为在form-bean中设置的name属性和action中设置的name属性不匹配所致。换句话说，action和form都应该各自有一个name属性，&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2157154.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>用Validator检查你的表单</title><link>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157146.aspx</link><pubDate>Fri, 07 Mar 2008 19:49:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157146.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2157146.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157146.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2157146.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2157146</trackback:ping><description>用Validator（验证器）提供的丰富的内置验证方法简化Struts的开发过程。 ;&lt;B
　　2qt)RL
Struts框架的一个主要好处是它提供了对接收到的表单数据进行验证的内置界面。如果有任何验证失败，则应用程序都会重新显示HTML表单，这样就可以改正无效的数据了。如果验证成功，则处理过程会继续进行。Struts框架的简单验证界面会减少与处理数据验证有关的令人头疼的事情，这样你就可以把精力集中到验证代码上，而不是放到捕获数据、重新显示不完整或无效数据的技巧上。gU2
　　nw6
&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2157146.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>struts2表单验证初步及国际化实现(学习总结)</title><link>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157142.aspx</link><pubDate>Fri, 07 Mar 2008 19:47:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157142.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2157142.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/03/07/2157142.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2157142.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2157142</trackback:ping><description>struts2表单验证初步及国际化实现(学习总结)
struts2表单验证的两种形式：
1.Aciton类重写ActionSupport类的validate（）方法：
    public void validate(){
        if(getUsername() == null || getUsername().trim().equals("")){
            addFieldError("username", getText("username.required"));
        }
    }
struts2的标签默认具备输出校验错误的能力
2.用xml文件实现表单验证
xml文件命名规则"Action类名-validation"；例使用requiredsting校验器实现LoginAction类的字段username非空验证：在LoginAction.java同包中新建LoginAction-validation.xml文件，文件代码如下：
&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2157142.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>hibernate和ibatis的比较</title><link>http://blog.csdn.net/SmartTony/archive/2008/02/06/2085092.aspx</link><pubDate>Wed, 06 Feb 2008 01:36:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/02/06/2085092.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2085092.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/02/06/2085092.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2085092.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2085092</trackback:ping><description>Hibernate 是当前最流行的O/R mapping框架，它出身于sf.net，现在已经成为Jboss的一部分了

iBATIS 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目了。

相对Hibernate“O/R”而言，iBATIS 是一种“Sql Mapping”的ORM实现。

Hibernate对数据库结构提供了较为完整的封装，Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射，以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系，即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握， Hibernate/OJB 会根据制定的存储逻辑，自动生成对应的SQL 并调用JDBC 接口加以执行。
&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2085092.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>Struts 的工作流程 </title><link>http://blog.csdn.net/SmartTony/archive/2008/02/02/2079104.aspx</link><pubDate>Sat, 02 Feb 2008 23:42:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/02/02/2079104.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2079104.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/02/02/2079104.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2079104.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2079104</trackback:ping><description>ActionServlet是一个FrontController，它是一个标准的Servlet，它将request转发给RequestProcessor来处理， 

　　ActionMapping是ActionConfig的子类，实质上是对struts-config.xml的一个映射，从中可以取得所有的配置信息 

　　RequestProcessor根据提交过来的url，如*.do，从ActionMapping 中得到相应的ActionForn和Action。然后将request的参数对应到ActionForm中，进行form验证。如果验证通过则调用Action的execute()方法来执行Action，最终返回ActionFoward。 

　　ActionFoward是对mapping中一个foward的包装，对应于一个url 

　　ActionForm使用了ViewHelper模式，是对HTML中form的一个封装。其中包含有validate方法，用于验证form数据的有效性。ActionForm是一个符合JavaBean规范的类，所有的属性都应满足get和se&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2079104.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>Struts标签库详解</title><link>http://blog.csdn.net/SmartTony/archive/2008/02/01/2077596.aspx</link><pubDate>Fri, 01 Feb 2008 23:23:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/02/01/2077596.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2077596.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/02/01/2077596.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2077596.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2077596</trackback:ping><description>Struts提供了五个标签库，即：HTML、Bean、Logic、Template和Nested。
标签库 说明 
HTML 标签 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 
Bean 标签 在访问JavaBeans 及其属性，以及定义一个新的bean 时使用 
Logic 标签 管理条件产生的输出和对象集产生的循环 
Template 标签 随着Tiles框架包的出现，此标记已开始减少使用 
Nested 标签 增强对其他的Struts 标签的嵌套使用的能力 &lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2077596.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>struts-config中action 的attribute属性与name属性 </title><link>http://blog.csdn.net/SmartTony/archive/2008/01/30/2072327.aspx</link><pubDate>Wed, 30 Jan 2008 02:21:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/01/30/2072327.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2072327.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/01/30/2072327.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2072327.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2072327</trackback:ping><description>1、在一般情况下，actionForm是被存储在一定的scope中(request或session，通过action的scope属性来配置)，当我们在配置时，指定name而不指定attribute，那么指定的name值就作为actionForm存储在scope中的key值，我们可以在action中通过httpServletRequest.getAttribute("指定的name属性值")来获得这个actionForm；   当我们既配置了name又配置了attribute，那么actionForm存储在scope中的key值就采用attribute属性指定的值了，这时要通过httpServletRequest.getAttribute("指定的attribute属性值")来获得actionForm，此时通过httpServletRequest.getAttribute("指定的name属性值")是不能获得actionForm的。  
   
  所以，是否配置attribute属性就决定了actionForm存储在scope中的key值是采用name，还是采用attribute&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2072327.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>“学而优”在线考试系统的商业模式</title><link>http://blog.csdn.net/SmartTony/archive/2008/01/26/2067381.aspx</link><pubDate>Sat, 26 Jan 2008 20:54:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/01/26/2067381.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2067381.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/01/26/2067381.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2067381.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2067381</trackback:ping><description>“学而优”在线考试系统的商业模式


运营目标：在三年内成为中国NO。1的在线考试服务提供商。


 


业务背景：


很多公司/企业/机构，均要对自已的员工进行培训及考试。通常，这个过程是：培训，设计试卷，通知考试，打印卷子，找个地方，让员工坐下来，在规定的时间内答完卷子，收卷，改卷，公布成绩。整个过程相当的繁琐，而且成本较高，成绩不易管理及利用。整个过程的可重用性差。也就是说，重新组织一次类似的考试，成本是差不多的。


为了解决这些问题，许多软件公司开发出各具特色的考试系统，功能上，也比较完整。价格从几千元到几十万不等。客户购买了这些软件后，除了软件本身的成本外，还需要付出各种维护费用，如专人管理，需要人员工资福利，需要服务器，需要升级费等。总体拥有成本可能是软件购置费的数倍。


 


产品(product)


拟议中的在线考试系统提出了全新的经营模式，将客户的需求抽象出来，在互联网上建立起通用的在线考试网站，用户无需要购置软件，也不需要维护成本，只需购买一个帐号，付一定的费用，即可使用在线考试系统来组织考试。优点如下：&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2067381.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>Struts2与Struts1的对比</title><link>http://blog.csdn.net/SmartTony/archive/2008/01/26/2067271.aspx</link><pubDate>Sat, 26 Jan 2008 19:13:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/01/26/2067271.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2067271.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/01/26/2067271.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2067271.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2067271</trackback:ping><description>Action 类: 
? Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
? Struts 2 Action类可以实现一个Action接口，也可实现其他接口，使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的，任何有execute标识的POJO对象都可以用作Struts2的Action对象。

线程模式: 
? Struts1 Action是单例模式并且必须是线程安全的，因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事，并且要在开发时特别小心。Action资源必须是线程安全的或同步的。 
? Struts2 Action对象为每一个请求产生一个实例，因此没有线程安全问题。（实际上，servlet容器给每个请求产生许多可丢弃的对象，并且不会导致性能和垃圾回收问题） 

Servlet 依赖: 
? Struts1 Action 依赖于Servlet API ,因为当一个Action被调用&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2067271.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>Struts Tiles框架</title><link>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062304.aspx</link><pubDate>Thu, 24 Jan 2008 00:57:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062304.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2062304.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062304.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2062304.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2062304</trackback:ping><description>在开发Web站点时，常常要求同一站点的所有Web页面保持一致的外观，比如有相同的布局、页头、页尾和菜单。 假定网页被划分为四个部分：Header、Menu、Footer和Content。对于同一站点的所有Web页面，Header、Menu和Footer部分的内容相同，仅仅Content部分的内容不相同。如果采用基本的JSP语句来编写所有的Web页面，显然会导致大量的重复编码，增加开发和维护成本。

Tiles框架为创建Web页面提供了一种模板机制，它能将网页的布局和内容分离。它允许先创建模板，然后在运行时动态地将内容插入到模板中。Tiles框架建立在JSP的include指令的基础上，但它提供了比JSP的include指令更强大的功能。Tiles框架具有如下特性：
- 创建可重用的模板
- 动态构建和装载页面
- 定义可重用的Tiles组件
- 支持国际化

Tiles框架包含以下内容：
- Tiles标签库
- Tiles组件的配置文件
- TilesPlugIn插件 
本章循序渐进的介绍了构建如图16-1所显的复合式Web页面的若干方案，每个方案都建立在上一&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2062304.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>DispatchAction的详细说明 </title><link>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062290.aspx</link><pubDate>Thu, 24 Jan 2008 00:31:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062290.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2062290.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062290.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2062290.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2062290</trackback:ping><description>DispatchAction, LookupDispatchAction, MappingDispatchAction深入分析
 
  
 

 


DispatchAction, LookupDispatchAction, MappingDispatchAction深入分析

 

首先我们来看一下它们三者之间的关系

java.lang.Object

|

+--org.apache.struts.action.Action

|

+--org.apache.struts.actions.DispatchAction

|
&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2062290.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>SmartTony</dc:creator><title>Struts培训B组测试题 </title><link>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062284.aspx</link><pubDate>Thu, 24 Jan 2008 00:20:00 GMT</pubDate><guid>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062284.aspx</guid><wfw:comment>http://blog.csdn.net/SmartTony/comments/2062284.aspx</wfw:comment><comments>http://blog.csdn.net/SmartTony/archive/2008/01/24/2062284.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/SmartTony/comments/commentRss/2062284.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2062284</trackback:ping><description>(1)在Struts应用的视图中包含哪些组件?（多选）
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E) 代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签


(2)在Struts应用的控制器中包含哪些组件?（多选）
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签


(3)在Struts应用的模型中包含哪些组件?（多选）
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签


(4)以下代码定义了一个变量，如何输出这个变量的值?（多选）

选项:
(A)
(B) 
(C)
(D)




(5)把静态文本放在Resource Bun&lt;img src ="http://blog.csdn.net/SmartTony/aggbug/2062284.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>