我的Struts笔记
?
Struts原理
?
?
-Struts_工作原理与核心配置:
以前(Servlet)先写DAO.然后JSP页面根据web.xml中配置的servlet与Servlet-mapping再到Servlet(接收参数,验证,调用DAO等操作)-》跳转不同的页面。
? 使用Struts时原理:
? JSP->web.xml->ActionServlet(url-pattern:*.do)->struts-config.xml(根据path路径对应的action与actionFrom)->ActionFrom->validate方法验证(若通过进入action,否则返回input错误页)->action->调用
?
DAO进行逻辑判断->成功时跳转某个页面(struts-config.xml:forward),失败时可以返回错误页(input)
?
?
Struts-config.xml中的配置组成:
①<form-beans>------------包含多个form-bean.
???? <form-bean name="loginForm"-------name为该bean的名称,唯一标识。
??????????? type="com.struts.form.loginForm"/>--------该bean的包.类名.
</form-beans>
此配置是对Actionform。
②<action-mappings>
?? <action........>//可配置多个action,对应写的Action类。
?</action-mappings>?? ????????
name.attribute表是该Action所对应的ActionForm的name属性。
input是用来作为错误页的,当validate方法执行后有错误,则自动跳转到该页面。
path表示该Action的虚拟路径,必须加/,不用加·do.
scope="request":表示Action所保存的属性范围,request表示每次请求重新建立新的Action。
type表示该Action的包.类名。。
在Action中可包含多个forward路径
forward属性:name为该forward的唯一标识,在Action代码执行跳转时需要通过的该name来查找对应的路径。??????????? path标识该forward所要跳转的路径,
以上内容配置的为Action。
①和②必须一一对应。两个必须都有。等于把Servlet分成两部分。一个Action只能对应一个Actionform,而一个ActionForm可已有多个Action使用它。***********配置中如/login路径path都带/,表示从webroot下开始往下找路径,【不加 / 会报错】
③资源文件的配置:
? ???<message-resources parameter="com.pro.struts.ApplicationResources" />
表示资源文件改包名地方。
?
?
ActionFrom中参数类型接受:
Bean:defind中的属性:
Id:表示新建立属性在属性范围中的名称,自行定义,如果有重复的,则自动覆盖。
Value:表示新建立的属性的值,只能是字符串。
Name:表示要复制的的属性在属性范围中的名称,与value不能同时使用。
Scope:表示所要复制的属性所在的属性范围,如果不填写,默认是4种属性范围。
toScope:表示范围后的新的属性所保存的属性范围,如果不填写,默认是page 范围。
?
如果属性范围中保存的为一个vo对象,这里要复制该对象的一个属性,可以通过pro皮而已来进行处理.
?Property: 表示所复制的属性其中包含的子属性的名称,必须有getter和sertter方法。
格式化:#和0都表示一位数字,这里#,##0.00表示显示格式为 3位数字,3位数字,2位数字
?
?
格式化:
金钱格式化:#,##0.00
?
#与0的区别,如果该位不存在时,如果使用#,则不会显示该位,如果使用0,则会显示补0
Double格式化:#,##0.00
日期格式化:yyyy-MM-dd
?
Struts国际化
需要使用bean:message标签来实现该功能,并且需要资源文件的支持。
这里需要完成多个语言的现实,因此要建立多个资源文件,同时要求资源文件的命名必须规范
资源文件命名规范:以原有资源文件为基准,在其主文件名后+语言种类编码
?
最后在页面通过调用<bean:message key=””>标签来调用。
?
?
?以后继续修改……