Struts2的标签用法和示例
1)s:property标签:property 标签用来输出一个值栈属性的值
示例:
输出 Action 属性 customerId 的值: <s:property value=“customerId”/>
输出 session 属性 userName 的值: <s:property value=“#session.userName”/>
notice:如果 value 属性没有给出, ValueStack 值栈栈顶对象的值被输出,在许多情况下, JSP EL 可以提供更简洁的语法<s:property value=“customerId”/>可以写成${customerId}
2)s:url标签:可以用来动态的创建一个URL,常用参数如下:(Struts2中对Value的值有自动匹配功能;也就是OGNL解析)
var:用来被压入contextMap中的键值
value:指定URL值的值
includeparam:post,get,all:指定是否包含请求参数
Action:指定Action
method:指定Action方法
namespace:指定URL的命名空间
3)param
标签用来把一个参数传递给包含着它的那个标签
•无论在给出 value 值时有没有使用 %{}, Struts 都会对它进行 ognl 求值
•如果想传递一个 String 类型的字符串作为参数值, 必须把它用单引号括起来.
•可以把 value 属性的值写在开始标签和结束标签之间. 利用这种方式来传递一个 EL 表达式的值
4)set 标签用来在以下 Map 对象里创建一个键值对:
7)
–ValueStack 值栈的 ContextMap 值栈
–Map 类型的 session 对象
–Map 类型的 application 对象
–Map 类型的 request 对象
–Map 类型的 page 对象
5)
•push 标签将把一个对象压入 ValueStack 而不是压入 ContextMap.
•push 标签在标签起始时把一个对象压入栈, 标签结束时将对象弹出栈.
6)if, else 和 elseif 标签
这三个标签用来进行条件测试, 它们的用途和用法类似于 if, else 和 elseif 关键字. 其中 if 和 elseif 必须有 test 属性;例如<s:if test=""
•iterator 标签用来遍历一个数组, Collection 或一个 Map, 并把这个可遍历对象里的每一个元素依次压入和弹出 ValueStack 栈
•在开始执行时, iterator 标签会先把 IteratorStatus 类的一个实例压入 ContextMap, 并在每次遍历循环时更新它. 可以将一个指向 IteratorStatus 对象的变量赋给 status 属性.
•top 指代当前迭代元素,可以为对象
8)
•sort 标签用来对一个可遍历对象里的元素进行排序.
9)
•date 标签用来对 Date 对象进行排版
•format 属性的值必须是 java.text.SimpleDateFormat 类里定义的日期/时间格式之一.
10)
•action 标签用在页面上来执行一个 action.
•action 标签还会把当前 Action 对象压入 ValueStack 值栈的 ContextMap 子栈.
11)
•bean 标签将创建一个 JavaBean, 并把它压入 ValueStack 值栈的 ContextMap 子栈. 这个标签的功能与 JSP 中的 useBean 动作元素很相似
12)
•include 标签用来把一个 Servlet 或 JSP 页面的输出包含到当前页面里来.
13)
•append 标签用来合并可遍历对象.
•merge 标签用来交替合并可遍历对象.
14)
•generator 标签用来生成一个可遍历对象并把它压入 ValueStack 栈.
•generator 标签结束标记将弹出遍历对象
•如果在一个 generator 标签里给出了 converter 属性, 新生成的可遍历对象里的每一个元素都会传递到该属性所指定的方法进行必要的转换.
15)
•subset 标签用来创建一个可遍历集合的子集.
•subset 标签通过 decider 属性来创建一个可遍历集合的子集.
表单标签:
•textfield 标签将被呈现为一个输入文本字段,
•password 标签将被呈现为一个口令字段,password 标签扩展自 textfield 标签, 多了一个 showPassword 属性. 该属性时布尔型. 默认值为 false, 它决定着在表单回显时是否显示输入的密码.
•hidden 标签将被呈现为一个不可见字段.
•submit 标签将呈现为一个提交按钮. 根据其 type 属性的值. 这个标签可以提供 3 种呈现效果:
–input: <input type=“submim” …/>
–button: <input type=“button” …/>
–image: <input type=“image” />
•textarea 标签将呈现为一个 HTML 文本域元素
•checkbox 标签将呈现为一个 HTML 复选框元素. 该复选框元素通常用于提交一个布尔值
•在普通的HTMLcheckbox 标签在表单被提交时, 如果某个复选框被选中了, 它的值将为 true, 这个复选框在 HTTP 请求里增加一个请求参数.但如果该复选框未被选中, 在请求中就不会增加一个请求参数.
•checkbox 标签解决了这个局限性, 它采取的办法是为单个复选框元素创建一个配对的不可见字段(无论是否被选中都有值)
•list, listKey, listValue 这 3 个属性对 radio(多选按钮), select(下拉列表框), checklist 等标签非常重要
•可以把一个 String, 一个数组, 一个 Enumeration, Iterator, Map 或 Collection 赋给 list 属性.
•select 标签将呈现一个 select 元素.
•optiongroup 标签对 select 元素所提供的选项进行分组. 每个选项有它自己的来源.
•checkboxlist 标签将呈现一组多选框.
•checkbox 标签被映射到一个字符串数组或是一个基本类型的数组. 若它提供的多选框一个也没有被选中, 相应的属性将被赋值为一个空数组而不是空值.