题记:seasar是一款流行于日本的基于struts的开发框架,到底是基于struts,所以学过struts2的我还是能勉强于摸索中进步着。新入公司月余,seasar和日语要同时从零开始,还真是不容易啊!
以下所有内容,均基于所做的项目,没有普遍意义,仅供参考!
本项目中的动态网页jsp页面均位于WEB-INF下,无法直接访问,故均需要通过Action来跳转到特定动态页面。主要目录结构如下:
结构简略说明:
1.java文件夹里放的当然是java类了。dto相当于bean,存放的是对象的属性。form和jsp的表单、action中的类有密切关系。logic存放各种事件的逻辑类。service服务于logic,和数据库进行交互。entity对应于数据库里的表。
2.resources文件夹里放的是操作数据库的sql文件,由java/XXweb/service里的类调用。dicon是seasar的文件。properties嘛,放的是固有信息,常和ResourceBundle类结合起来用。
3.webapp是该B-S结构项目的表示页面。css放样式表。img放图片。js放脚本。WEB-INF里,lib是引用类文件夹,view就是我们做的jsp文件存放文件夹,除此之外还有一些xml配置文件。
关于跳转:
入口页面index.jsp ---》 action ---》 *.jsp ---》……
关于表单:
如果jsp页面有表单欲提交,则要在form文件夹下建立与action相匹配的类文件。例如:
页面中表单如下:<s:form action="/login/doLogin" styleId="mainForm">
则action文件夹中须有个叫“doLoginAction.java”的动作类,该动作类中须声明一个form文件夹下叫“doLoginForm.java”的类的实例,页面表单提交的变量由seasar置入该form类实例的各变量中。所有变量严格遵守“驼峰命名法”。
关于验证:
提交内容的验证一般在form类中做,在form类的变量上加上“@validatorName”这样,target属性可指定由action类中的哪个方法启用该验证。action中则需要在方法前加上“@Execute(validator = true, input=Const.URL_JSP_JSP01)”语句。input属性指明调用该action方法的动态页面,未通过验证则返回该页面。
action类调用logic方法,logic则通过调用service中的方法与数据库交互。
额外tips:
1 seasar页面中的表单提交后,默认调用的是public String index() {……}方法。
2 一张表对应一个service类;操作同一个表的sql文放在一个包内,且包名以表名命名。