04_Struts2标签
1.通用标签:
- property标签:
- 用来输出值栈属性的值
- 如果value属性没有给出,ValueStack值栈栈顶对象的值被输出
- 许多情况下,EL表达式可以提供更简洁的语法
- url标签:
- url方法(常用):
- action
- includeParams
- method
- namespace
- value
- var
- 作用:使用url可以动态的创建一个URL
- parms标签:
- 作用:将一个参数传递给包裹着它的那个标签
- 属性值:name、value
- 无论在给出value值时有没有使用%{},Struts都会对它进行ognl解析
- 想传递一个字符串类型的属性值就必须使用单引号引起来
- 可以把value属性的值写在开始和结束标签之间,利用这种方式来传递一个el表达式的值
- set标签:
- 作用:用以在map对象里创建一个键值对
- 作用范围:
- ValueStack值栈的ContextMap值栈
- Map类型的session对象
- Map类型的application对象
- Map类型的request对象
- Map类型的page对象
- push标签:
- 作用:和set标签类似
- 区别:
- push标签直接将值封装到ValueStack而不是ContextMap
- push标签在标签开始时将值放入到栈中,标签结束时拿出
- 测试标签:
- 包括:
- if
- else
- elseif
- 作用:作用于条件测试,除else外使用时必须有test方法
- iterator标签:
- 作用:遍历一个数组、Collection或者一个Map,并将这个可遍历对象的每一个元素依次压入和弹出ValueStack
- sort 标签:
- 作用:用来对一个可遍历对象进行排序
- 参数:
- comparator
- source
- var
- date标签:
- 作用:用来对Date对象进行排版
- 参数:
- format
- name
- nice
- var
- 注意:format属性的值必须是java.text.SimpleDateFormat类里定义的日期/时间格式之一
- a标签:
- 作用:与html中的a标签作用相同
- 好处:可以对属性值进行OGNL解析
- 注意:使用%{}进行强制的ognl解析
2.表单标签:
- 概述:
- 作用:表单标签将在HTML中被表现为一个表单元素
- 优点:
- 表单回显
- 对页面进行布局和排版
- 注意:标签的属性可以被赋值为一个静态的值或者一个ognl表达式,如果在赋值时使用了ognl表达式并用了%{}将之包含,这个ognl表达式将被求值
- form标签:
- 作用:用来呈现html语言中的表单元素
- 注意:默认情况下,form标签将被呈现一个表格形式的html表单,嵌套在form标签里的输入字段将被呈现为一个表格行。每个表格行由两个字段组成。一个对应行标,一个对应输入元素,提交按钮将被呈现为一个横跨两列的行。
- textfield标签:
- 呈现方式:输入文本字段
- password标签
- 呈现方式:口令字段
- 与textfield字段区别:扩展自textfield字段,但是多了一个showPassword属性,默认为false
- hidden标签
- 呈现方式:不可见字段
- submit标签:
- 呈现方式:呈现为一个提交按钮,可修改其type属性为三种表现方式:submit、button、image
- textarea标签:
- 呈现方式:将呈现一个HTML文本域元素
- checkbox标签:
- 呈现方式:将呈现一个HTML复选框元素,该复选框通常用于提交一个boolean值
- 注意
- 当一个复选框被选中时,该复选框的值变为true,并且在HTTP中增加一个请求参数,如果为选择则不增加
- 而struts2中解决了该局限性,它为每一个复选框增加一个不可见的配对字段
- list、listKey、listValue属性:
- 作用:作用于radio.select.checkboxlist三个标签,很重要
- 用法:可以把一个String、一个数组、一个Enumeration、Iterator、Map或者Collection赋值给list属性
- radio标签:
- 呈现方式:呈现为一组单选按钮,单选按钮的个数与其list属性值的个数相同
- 注意:一般使用radio进行多选一,而真与假则使用checkbox标签
- select标签:
- 呈现方式:将呈现一个select元素,即下拉列表框
- 注意:
- optgroup可以作为select的子标签,用于显示更多下拉框
- 必须有键值对,而不能使用一个集合,让其值级作为键,又作为值
- 也可以使用list,但是必须指定listkey和listvalue
- checkboxlist标签:
- 呈现方式:呈现一组多选框
- 注意:
- checkbox标签被映射到一个字符串数组或者一个基本类型的数组,若它赋值的多选框一个也没有被选中,相应的属性将被赋值为一个空数组而不是空值。
- 服务端必须使用lsit集合接收,才能保证正常回显
- 2.5版本使用lsit接收,打印出来后为空集合,且回显值会减少一个,而使用String []接收则可以正常回显,解决方法暂未找到
3.主题:
- 作用:为了让所有的UI标签能够产生同样的视觉效果而归集到一起的一组模板,即风格相近的模板被打包为一个主题
- Struts2主题:
- simple:把UI标签翻译成最简单的html对应,而且会忽略行标
- xhtml:默认主题,这个主题的模板通过使用一个表格布局提供了一种自动化的排版机制
- css_xhtml:这个主题和xhtml主题相近,但是使用css进行排版布局
- ajax:以xhtml主题为模板,增加了一些ajax功能
- 修改主题:
- 通过UI标签的theme属性
- 在一个表单里,若没有给出某个UI标签的theme属性,它将使用这个表单的主题
- 在page、session、request或application中添加一个theme属性
- 修改default.properties文件中的struts.ui.theme属性