读书人

小弟我的Struts笔记

发布时间: 2012-09-02 21:00:34 作者: rapoo

我的Struts笔记

?

Struts原理

?

?

-Struts_工作原理与核心配置:

以前(Servlet)先写DAO.然后JSP页面根据web.xml中配置的servlet与Servlet-mapping再到Servl小弟我的Struts笔记et(接收参数,验证,调用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=””>标签来调用。

?

?

?以后继续修改……

读书人网 >软件架构设计

热点推荐