同时要特别感谢我的同事们在我的学习过程中对我的指导,使我少走了许多弯路和少了许多迷茫。
1. 给静态页面中需要动态显示数据的标签增加id属性和修改需要给Form提交的元素的Name属性,这个id在显示数据时需要用到。编译静态页面生成JAVA文件。
2.编写DAO层代码实现业务逻辑层需要的方法。
3. 编写业务逻辑层代码实现具体的业务功能,生成接口和对应的API。
4.编写ActionForm,ActionForm对象相当于是静态页面中Form的一个JAVA模型,所有数据对象的命名必须与静态页面Form表单中元素的Name属性一致。
如果通过ActionForm中的GetXXX方法没有取到页面元素的值,则检查页面元素是否有Name属性值且是否与Form中数据对象的命名一致。
5.编写ActionServlct,ActionServlet调用业务逻辑层的接口,实现具体的业务功能。同时需要根据业务逻辑接口返回结果决定页面下一步的转向。此处涉及到ActionMapping、ActionErrors等对象和struts-config.配置文件。
如果页面提交时提示找不到ActionSerlet,则很大的可能就是struts-config配置文件中的对应action的 Path属性设置和页面Form的Action属性设置不一致。还有就是WEB-INF/lib目录下所必须的包不全。如果Action中需要Form中数据的话,在配置struts-config 配置文件的时候同时需要配置<form-beans>和<action-mapping>两段。action-mapping中action中name中的值,必须在form-beans中的form中存在。
<form-beans>
<form-bean name="deleteEnterpriseForm" type="com.guanda.unicom.web.admin.DeleteEnterpriseForm" />
</form-beans> <action-mappings>
<action name="deleteEnterpriseForm" type="com.guanda.unicom.web.admin.DeleteEnterpriseAction" validate="true" input="/error.jsp" scope="request" path="/deleteEnterpriseAction">
<forward name="success" path="/back/product/enterpriseInfoList.jsp" redirect="true" /> <!--成功后转向页面-->
</action> </action-mappings>
同时struts1.1支持多个struts配置文件,只要在web.xml 文件中增加上每一个配置文件,之间用半角的逗号隔开即可,只要就可以解决分模块开发时多人修改同一文件时带来的冲突。
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/strutsluo-config.xml,/WEB-INF/strutsljq-config.xml,/WEB-INF/strutslqd-config.xml</param-value>
</init-param>
在错误页面中根据资源文件动态加载错误描述信息时,报如下错误异常: javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE,最后发现是我的struts-config.xml文件中少了一段,加上就好了。如果用的struts包是网上下载的,应该不会报这个错误。红色代码部分应该根据自己的实际包路径修改。
<!-- ========== Message Resources Definitions =========================== -->
<message-resources
parameter="com.guanda.unicom.web.ApplicationResources"/> <message-resources
parameter="com.guanda.unicom.web.ApplicationResources"
key="alternate">
</message-resources>
6.配置: