我的Struts笔记

系统 1593 0

 

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 中参数类型接受:

如果参数为 int 类型接受,则会自动进行类型转换,当无法转换时,会使用默认值来进行处理,默认值为 0

 

注意:不要将 int Date 等需要转换的类型,直接放入对象中。

 

 

Bean 标签

Bean: 用来处理属性范围中的属性,可以对其进行复制,添加和显示,并可以完成国际化功能。

Logic: 用来完成页面上的逻辑判断和迭代循环。

Html: 用来替代 HTML 页面元素的标签。

 

1.        bean:defind 标签:用来创建或复制一个属性范围中的属性。

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=””> 标签来调用。

 

 

 以后继续修改……

我的Struts笔记


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论