课件-程序员联合开发网.ppt
Struts标记库,本章要点,HTML标记 基本标记 表单及输入组件标记 显示错误信息的标记 Bean标记 Bean定义标记 变量定义标记 显示Bean属性标记 消息标记和国际化(I18N),逻辑标记 条件逻辑标记 重复逻辑标记 流程控制标记,使用Struts标记库的准备工作,将标记库文件struts-html.tld复制到应用/WEB-INF目录中 在使用该标记库的JSP页面中,使用标记引入该标记库,html基本标记,标记 标记 标记,html表单及输入组件标记,标记, User Name: Password: ,标记,用于生成一个单行文本域输入组件,该标记必须出现在标记中。,标记,用于生成一个密码输入域组件,标记,用于生成隐藏的文本输入域组件,标记,用于生成多行多列的文本输入域组件,标记,用于生成单选按钮组件 ,它必须包含“value”属性,标记,用于生成复选框组件,其他html标记,标记 标记 标记 标记 参见:testHtmlTag.jsp,显示错误信息的标记,标记 通过该标记可以在一个JSP页面上显示完全自定义的、国际化的错误消息。 参见案例v5,Bean标记,标记 使用标记可实现下述功能:定义新的bean、复制现有bean来创建新的bean、或复制现有bean的属性来创建新的bean。 的主要属性 id:定义新的变量的名称,必须设置 value:为id属性定义的变量分配一个新的对象 name:目标bean的名称,若vlaue属性没有设置,这个属性必须设置 property:name属性定义的bean的属性名称,用来定义新的bena scope:原bean的作用范围.若缺省该属性,则系统自动从page到 applicaotion范围内搜索 toScope:目标bean的作用范围.若没有设置,默认是page作用御 参见源文件:testBeanDef1.jsp, testBeanDef2.jsp, UserForm.java,标记,获取bean的属性并将该属性值打印输出到响应页面。其功能与JSP标记类似 .,变量定义标记,作用:定义作用域为当前页面的变量,可以理解为page范围内的bean,以 获得和记录来自请求表单的参数,Cookie,Http请求头或指定页面的响应 标记 标记 标记, 参见源文件 a.jsp/b.jsp,标记,通过指定属性文件中定义的“键-值”对的键名,然后获取其“键值”信息的。 参见案例v4,逻辑标记,逻辑标记能够有条件地、或循环地产生输出文本,并可实现应用程序流程控制。 逻辑标记分为三类: 条件逻辑标记 重复逻辑标记 流程控制标记 逻辑标记封装在struts-logic.tld的标记库文件中,条件逻辑标记,条件逻辑标记有可细分为三类,分别实现数值大小的比较,判断数据项目是否存在和匹配性检查等功能 第一类条件逻辑标记主要提供数据的比较逻辑、用于条件显示功能,具体包括: 比较被定义的实体是否等于指定的常量,如果相等,返回true 不相等 大于等于 小于等于 小于 大于 代码参见案例:testLogicBean1.jsp,条件逻辑标记的属性,value:要作比较的常数值 cookie:要作比较的cookie名 header:要作比较的HTTP请求报头名 paramter:要比较的HTTP请求参数名 name:要比较的bean的名称 property:要比较的bean的属性名 scope:bean的作用域,如缺省,则搜索范围为page-appliaction,条件逻辑标记,第二类条件逻辑标记的主要功能是在处理之前判断特定的条目是否存在,具体包括: , bean1或其属性age不存在 ,条件逻辑标记,第三类条件标记的作用是根据模板匹配的结果检查标记体的内容。具体包括: , 请求参数name中包含子字符串“tom“ ,重复逻辑标记,标记 根据特定集合中元素的数目对标记体的内容进行重复的检查。 集合的类型可以是java.util.Iterator,java.util.Collection、java.util.Map或是一个对象数组。 有三种方法可以定义将被遍历的集合: 使用运行时表达式来获取一个属性集合 将集合对象定义为bean 将集合对象定义为bean,再将其中元素仍作为bean来访问 参见源文件testLogicBean2.jsp / Person.jsp,流程控制标记,转发标记 重定向标记,主要属性包括: forward - 映射了资源相对路径的ActionForward href - 资源的完整URL page - 资源的相对路径,