Struts多模块的开发

阅读更多
多模块开发示例:(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");
经测试成功。

你可能感兴趣的:(Struts,JSP,XML,Web)