`
andy54321
  • 浏览: 442509 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts多模块开发_需注意的地方

    博客分类:
  • SSH
阅读更多

在基于struts的WEB应用的开发中,使用多模块开发是十分必要的,总结了一下如下:

Struts 的配置文件struts-config.xml 是Struts 框架最重要的资源之一,并且是需要频繁改动的。如果并行开发的各个团队都是用这一个配置文件,势必造成访问冲突。Strus 框架的模块化机制就是专门应对这种情况的。

Struts 从1.1 版本开始增加了模块化支持,并且一直在强化对模块化的支持。不同的应用模块可以拥有各自的struts-config 配置文件、消息资源、Validator 框架配置文件。不同的模块可以协同开发,互不影响。

Struts 应用配置为多模块应用,需要如下三个步骤:

为每个模块分别建立一个struts配置文件;
通知模块控制器;
使用特定的Action在模块间跳转。
一 给各模块命名:

struts默认的配置文件名是struts-config.xml,给其它模块配置文件命名struts-config-***.xml.比如登录模块需要一个单独的模块可以命名为struts-config-login.xml;

二 通知模块控制器:

在web.xml中加入如下代码:

    
      config    
      /WEB-INF/conf/struts-config.xml    
    
    
      config/login    
      /WEB-INF/conf/login/struts-config-login.xml    
   

配置文件对应的ActionServlet 初始化参数名为config。对于其他模块,ActionServlet 初始化参数的命名原则是“config/模块名”。如上面的代码示例中,login 模块的配置文件对应的初始化参数为config/login。其中前缀“config/”是不能缺少的,后面跟模块名。在Struts 控制器中,是通过模块名来区分不同模块的。在资源访问中,也是一模块名作为前缀来区分对不同模块的访问。如以“/login”开头的路径会告诉控制器所要访问的将是login 模块的资源。

三 实现模块间跳转:

(1)用SwitchAction,主要用于实现页面的跳转

(2)全局转发和局部转发,用于实现模块间的跳转

(3)采用html:link标签

多模块开发示例:(Eclipse3.2+MyEclipse5.0)
1.新建一个Web Project
2.添加Struts 1.2 支持
3.在根目录(WebRoot)下新建index.jsp页面
4.在WebRoot目录下新建一个模块目录“ModuleA”。
5.新建一个struts 1.2 module,名为“ModuleA”。
6.测试直接链接到其他模块的jsp页面(注意不能直接链接到其他模块的与Action、ActionForm相关联的页面):

在根目录的index.jsp页面中添加如下代码:

1.链接到其他模块(ModuleA)直接链接到页面
适用于没有和Action,ActionForm关联的纯JSP页面

 

在ModuleA目录下新建index.jsp页面,完成后测试成功。

7.测试直接链接到其他模块的jsp页面(直接链接到其他模块的与Action、ActionForm相关联的页面,应该不能成功):
首先配置struts-config-ModuleA.xml文件:
新建一个Form、Action and JSP,用例中填写user,添加两个属性:name,password。
在JSP选项卡中填写“/ModuleA/login.jsp”,点击下一步,在Path中填写“/login”,在forward选项卡中添加一个forward,name为“OK”,Path为“/welcome.jsp”,点击完成。
在ModuleA目录下新建wellcome.jsp文件,在源码中加入如下代码:
.在UserAction.java源码中填写如下代码:return mapping.findForward(“OK”)。
在根目录下的index.jsp源码中添加如下代码:
2.链接到其他模块(ModuleA)试图连接到和Action,ActionForm关联的页面
不能直接这样链接,会报Cannot retrieve mapping for action /xxx异常,因为此时还是检查struts-config.xml


测试后果然异常。
正确做法如下:
在struts-config-ModuleA.xml文件中添加一个Action,在用例中填写“toLoginPage”,在forward选项卡中添加一个forward,name为“toLoginPage”,Path为“/login.jsp”。
修改ToLoginPage.java的源码为:return mapping.findForward(“toLoginPage”);。
在根目录下的index.jsp源码中添加如下代码:
3.链接到其他模块(ModuleA)的xxxx.do,连接到和Action,ActionForm关联的页面
正确做法,是对2链接形式的更正,应该链接到ModuleA的一个Action,由该Action的forward转发到login.jsp页面


经测试成功。

8.测试跨模块表单提交(从主模块提交表单到ModuleA模块):
在struts-config.xml(主模块)中新建Form、Action and JSP,用例中输入“reg”,增加两个属性:sex、age,点击下一步,在Path中填写“/userReg”,Action Impl中选择Use existing Action class,使用SwitchAction,直接finish掉。添加根目录下的indexs.jsp文件源码如下:

4.提交表单到其他模块:


sex :

age :


在ModuleA文件夹下新建regOK.jsp文件,在regOK.jsp文件源码中写入如下语句:
regOK,your sex is: age is:
经测试成功。

9.测试跨模块表单提交(从ModuleA模块提交表单到ModuleB模块):
新建struts1.2模块,叫“ModuleB”,在WebRoot目录下新建文件夹“ModuleB”,配置struts-config-ModuleB.xml文件:
新建Form、Action and JSP,在用例中输入“employee”,增加两个属性:empName、depName,在JSP选项卡中填写“/ModuleA/empInfo.jsp”,点击下一步,Path中填写“/employee”,在Action Impl中选择Use existing Action class,使用SwitchAction,直接finish掉。
修改empInfo.jsp文件源码: …。
在ModuleB文件夹中新建showEmp.jsp文件,修改showemp.jsp源码为:。
在struts-config-ModuleA.xml文件中,增加一个Action,在用例中输入“empInfo”,增加一个forward,name为“/empInfo.jsp”。在根目录下的index.jsp文件中增加如下内容:
5.提交表单到其他模块(子模块到子模块):

链接到模块(ModuleB)的empInfo.do
链接到ModuleA的一个Action,由该Action的forward转发到empInfo.jsp页面


最后修改EmpInfoAction.java源码:return mapping.findForward("empOK");
经测试成功。

分享到:
评论

相关推荐

    WEB开发技术 Struts入门 GUI开发

    13. **安全性考虑**:使用 Struts 进行开发时,需要注意 SQL 注入、跨站脚本攻击等安全问题,合理使用框架提供的安全机制。 通过深入学习这个资料包,你将能够熟练地运用 Struts 构建 Web 应用程序,理解其核心概念...

    Struts子模块

    Struts 是一个经典的Java Web开发框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在Struts 1.1版本中,引入了子模块(Submodule)的概念,以便更好地组织和管理大型应用的配置。子模块允许开发者将一个大的...

    struts最少依赖jar包

    "struts最少依赖jar包"指的是在搭建基本的Struts开发环境时,最小化所需的库文件集合。 在构建Struts应用时,以下是一些关键的jar包及其作用: 1. **struts-core.jar**:这是Struts框架的核心库,包含了Action、...

    Struts+Spring+Hibernate框架搭建

    在现代软件开发中,特别是Java Web应用开发领域,采用多个框架协同工作已成为一种常见的做法。这种做法旨在通过不同框架的优势互补来构建高性能、高灵活性的应用系统。其中,“SSH”即Struts+Spring+Hibernate组合是...

    Struts2学习笔记

    - **注意事项**:路径必须与`struts.xml`中的配置相匹配,否则将无法正确执行Action。 #### 七、Action的动态调用方法 - **简介**:Struts2支持动态调用Action,即允许用户通过特定格式的URL来调用不同的方法。 - ...

    使用Struts框架完成一个简单的留言板(包含完整源代码+数据库+程序截图+中文显示数据)

    Struts框架是一个经典的Java Web开发框架,由Apache软件基金会维护,它遵循Model-View-Controller (MVC)架构模式,帮助开发者构建结构清晰且易于维护的Web应用。在这个项目中,“使用Struts框架完成一个简单的留言板...

    整合Struts + Spring + Hibernate

    Spring还包含了数据访问、Web、测试等多个模块,能与各种持久化技术(如Hibernate)进行集成。 3. **Hibernate框架**: Hibernate是一个对象关系映射(ORM)框架,解决了Java应用与数据库之间的数据交互问题。它将...

    struts1标签ppt

    Struts1标签库是Java Web开发中非常重要的一个组件,尤其在基于MVC(Model-View-Controller)架构的应用程序中。Struts1提供了一系列标签,使得开发者能够更方便地构建用户界面,减少对JSP页面中Java脚本的依赖,...

    spring-framework+struts-2.0+hibernate-distribution 整合

    Spring 还包括数据访问、Web、测试等多个模块,支持与各种ORM框架如Hibernate的集成。在SSH整合中,Spring 主要负责整体的应用管理,协调其他组件的工作,并提供事务管理和AOP服务。 Struts 2.0 是一个基于MVC设计...

    后台管理系统

    在实际开发中,还需要注意Struts2的安全问题,比如XSS和CSRF攻击,需要适当地配置过滤器和拦截器来增强系统的安全性。同时,合理的数据库设计和优化,以及高效的缓存策略也是后台管理系统不可或缺的部分。 综上所述...

    外文翻译 stus MVC

    Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control...

    SSH三大框架整合用的jar包

    SSH是Java Web开发中的三个重要框架的缩写,它们分别是Spring、Struts和Hibernate。这三个框架的整合在Java企业级应用开发中起到了至关重要的作用,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,实现了...

    taotao-cart.zip_taotao商城增删_商城购物车

    综上所述,"taotao-cart.zip_taotao商城增删_商城购物车"项目涵盖了前端交互、后端处理、数据库操作、安全措施、性能优化等多个IT领域的知识点,是电商系统开发中的重要实践。在实际开发过程中,还需要结合业务需求...

    ssh模拟登陆练习

    SSH模拟登陆练习是一个针对初学者的宝贵资源,它涵盖了Java开发中的重要框架——Spring、Hibernate和Struts2.0的整合应用。这三个框架是企业级Java应用开发的常用技术栈,能够帮助开发者构建高效、可维护的Web应用...

    黑马maven笔记第二天

    - **模块化开发**:Maven支持多模块项目结构,每个子模块可以独立构建和测试,有助于实现代码的重用和模块化管理,尤其适用于大型复杂项目。 #### 添加依赖的方式 - **从网络上搜索**:可以通过搜索引擎或者访问...

    freemarker总结

    FreeMarker对空值的处理非常严格,FreeMarker的变量必须有值,没有被赋值的变量就会抛出异常,因为FreeMarker未赋值 的变量强制出错可以杜绝很多潜在的错误,如缺失潜在的变量命名,或者其他变量错误.这里所说的空值,...

    webwork2.1.7

    WebWork 2.1.7 是一个古老的Java Web框架,...此外,WebWork中的异常处理和模块化设计也是值得借鉴的地方。尽管现在有更多先进的框架可供选择,但理解WebWork的历史和原理对于成为一位资深的Java Web开发者仍然有价值。

    Java洗衣店智能管理系统源码.zip

    此系统的核心是利用计算机技术自动化处理洗衣店的日常运营,包括订单管理、库存控制、预约服务、支付结算、会员管理等多个功能模块。 1. **Java技术栈**:该系统选用Java作为主要开发语言,因为Java具有跨平台性、...

Global site tag (gtag.js) - Google Analytics