一、通用标签1.s:property (读取值栈中对象的属性值)属性:value:指定OGNL表达式;default:OGNL表达式返回为 null 时,使用默认值;escape:是否对 HTML 特殊字符进行转义e1:读取对象栈中对象的属性值<s:property value="[1].userName"/>e2:访问Map栈,读取Session域中对象的属性值<s:property value="#session.sessionKey"/>e3:访问Map栈,通过attr读取域对象中的属性值<s:property value="#attr.requestAttrKey"/>e4:若不指定 value 值,则返回栈顶对象
2.s:url(创建一个 url 地址字符串)属性:value:创建 url 地址字符串;action:带有 ContextPath 和 .action 后缀e1:通过value属性创建URL地址字符串<s:url value="url"/><!-- url--><s:url value="/url"/> <!-- /struts2/url 带有 ContextPath-->e2:通过action属性创建URL地址字符串<s:url action="actionUrl"/> <!-- /struts2/actionUrl.action 不需要再次指定 / -->e3:通过action属性和namespace属性以及method属性创建URL地址字符串<s:url action="acitonUrl" namespace="test" method="dynamicMethod"/> <!-- test/acitonUrl!dynamicMethod.action -->e4:创建带请求参数的URL地址字符串<s:url value="/urlParam"><s:param name="userId" value=""zsmj""/></s:url><!-- /struts2/urlParam?userId=zsmj --><!-- 1.s:param 标签:给父标签传递参数2.value:若不加单引号,则从值栈中查找,若值栈中找不到则不添加该参数;加单引号按字符串输出-->e5:创建包含GET方式传递过来的请求参数的URL地址字符串<s:url value="/urlParam" includeParams="get" />e6:创建不包含contextPath的URL地址字符串<s:url value="/urlParam4" includeContext="false"/>
3.s:set(将键值对存入域对象)
属性:var:存入域对象中的 name 值;value:存入域对象中的 value 值; scope:域对象的范围;其他两个属性都是过时的e1:将attrName01="attrValue01"存入Session域<s:set var="attrName01" value=""attrValue01"" scope="session"/><s:property value="#session.attrName01" />e2:默认存入 request 域中e3:value 可以为 OGNL 表达式,值为对应值栈中的值<s:set value="#attr.attrName01" var="attrName03"/><s:property value="#attr.attrName03"/>
4.s:push(将一个对象临时压入栈顶,标签结束后弹出)
属性:value:要压入栈顶的对象,可以为 OGNL 表达式 对应的值栈中的值<s:push value=""pushObj""><s:property/> <!-- pushObj --></s:push><s:property/> <!-- com.nucsoft.struts2.helloworld.TestTagAction@7202555 -->
5.s:if、s:elseif、s:else属性:test: 布尔值e1:传入以age为键的请求参数,根据age的不同值测试不同分支条件<s:if test="#parameters.age[0]>18">大于18岁了</s:if><s:elseif test="#parameters.age[0]<18">小于18岁</s:elseif><s:else>等于18岁了</s:else>
6.s:iterator(遍历数组、Collection集合、Map集合,将遍历得到的每一个结果放入栈顶,本次循环结束时弹出)属性:value:要遍历的内容;var:将遍历得到的值以字符串的形式放入请求域,如果不指定则放入栈顶;status:IteratorStatus类型,会放入到请求域中;begin:遍历开始索引位置;end:遍历结束索引位置,包含;step:步长,指定负数则倒序遍历。e1:遍历集合<s:iterator value="#attr.list"><s:property/></s:iterator>e2:遍历Map<s:iterator value="#attr.map"><s:property value="key"/><s:property value="value"/></s:iterator>
7.s:sort(对数组、Collection集合或Map集合中的元素进行排序)属性:source:要比较的集合对象var:将排序好的集合对象放入pageScope,若不指定,则存入值栈栈顶comparator:比较器对象
8.s:date(格式化日期???
属性:name:指定一个 OGNL 表达式,用于读取要格式化的日期对象format:日期格式字符串,如"dd/MM/yyyy"var:若有值,则以此值为key,存放到域对象中,若没指定,则输出。
9.s:a(创建一个超链接)属性:href:将指定字符串原封不动的作为超链接的 href 值,不支持EL 表达式,如要从值栈中获取数据,可以使用强制 OGNL 解析,%{OGNL表达式}%value:不加 /,和 href 一样,加 / ,自动加入 ContextPath
二、表单标签1.总览| Struts2标签名 | 对应的HTML元素 |
| s:form | form |
| s:textfield | input type=”text” |
| s:password | input type=”password” |
| s:hidden | input type=”hidden” |
| s:submit | input type=”submit” |
| s:textarea | textarea |
| s:radio | input type=”radio” |
| s:select | select/option |
| s:optiongroup | optiongroup/option |
| s:checkboxlist | input type=”checkbox” |
| s:checkbox | 单一的input type=”checkbox” |
2.表单标签的通用属性| 属性名 | 类型 | 作用 |
| label | String | 指定一个表单元素在XHTML和Ajax主题下的行标,在simple主题下无效 |
| name | String | 指定一个表单元素的name属性值,一个输入元素的name属性将被自动映射(或注入)到一个Action类中由setXxx()方法定义的属性 |
| value | String | 指定一个表单元素的value属性值 |
| cssClass | String | 指定一个表单元素的class属性值 |
| cssStyle | String | 指定一个表单元素的style属性值 |
| title | String | 指定一个表单元素的title属性值 |
| disabled | String | 指定一个表单元素的disabled属性值 |
| labelPosition | String | 指定一个表单元素在XHTML和Ajax主题下的行标位置,可选值[top|left] |
| key | String | 这个输入字段所代表的属性的名字,name和label属性的快捷方式 |
| required | boolean | 在XHTML主题中,指定该属性是否加* |
| requiredPosition | String | 指定一个表单元素的*的位置,可选值[left|right] |
| tabIndex | String | 指定HTML标签的tabindex属性 |
3.s:form 标签| 属性名 | 类型 | 默认值 | 作用 |
| action | String | 当前action | 当前表单提交的目标Action |
| enctype | String | —— | 表单的enctype属性 |
| method | String | POST | 表单提交的请求方式 |
| namespace | String | 当前namespace | 目标Action所从属的命名空间 |
| acceptcharset | String | —— | 当前表单所接受的字符集,多个字符集用逗号或空格隔开 |
| onsubmit | String | —— | 用于绑定onsubmit事件的句柄 |
| openTemplate | String | —— | 用来打开这个表单的模板 |
| portletMode | String | —— | 在用户提交这个表单后将显示的portlet模式 |
| target | String | —— | 表单的target的属性 |
| validate | boolean | false | 在XHTML/Ajax主题下是否进行客户端输入验证 |
| windowState | String | —— | 用户提交表单后将显示的窗口状态 |
4.s:textfield标签(生成一个单行文本框)| 属性名 | 类型 | 默认值 | 作用 |
| maxlength | int | —— | 生成文本框后最多能容纳多少个字符 |
| readonly | boolean | false | 生成的文本框是否为只读 |
| size | int | —— | 生成的文本框的宽度 |
| key | | | 可以同时代替 name 和 label 属性 |
5.s:password标签(生成一个密码框)说明:扩展自 s:textfield ,多了一个 showPassword 属性,为 布尔型,决定要不要显示输入的密码
6.s:hidden 标签(用于生成一个表单隐藏域)7.s:submit标签(用于生成表单提交按钮)
| 属性名 | 类型 | 默认值 | 作用 |
| align | String | right | XHTML/Ajax主题下控制提交按钮的对齐方向 |
| type | String | input | XHTML/Ajax主题下控制提交按钮的显示方式,可选值[input|button|image] |
| src | String | —— | 当type=image时,使用src属性指定图片路径 |
8.s:textarea标签(用于生成多行文本域)| 属性名 | 类型 | 默认值 | 作用 |
| cols | int | —— | textarea标签的cols属性 |
| rows | int | —— | textarea标签的rows属性 |
| readonly | boolean | false | 指定当前元素是否为只读 |
9.有选择功能的标签的通用属性list属性:指定用于生成多选框的list集合listKey属性:指定生成的多选框的value属性listValue属性:指定每一个多选框旁边的说明文字name属性:指定生成的多选框的name属性如果list属性读取的是一个Map,则可以由Map的键生成多选框的value属性,Map的值生成多选框旁边显示的文字,所以此时不需要指定listKey和listValue属性。
10.s:radio标签(生成一组单选按钮)<s:radio list="#{"male":"男","female":"女"}" name="gender" label="性别"></s:radio>
11.s:select标签(生成下拉列表)| 属性名 | 类型 | 默认值 | 作用 |
| emptyOption | boolean | false | 指定???否在标题下面插入一个空白选项 |
| headerKey | String | —— | 选项列表中第一个选项的键 |
| headerValue | String | —— | 选项列表中第一个选项的值 |
| multiple | boolean | false | 指定是否多选 |
| size | int | —— | 同时显示在页面里的选项个数 |
10.s:optiongroup标签(示选项的分组,每个分组有自己数据的来源)<s:optgroup label="opt01" list="#{"aa":"AA","bb":"BB" }"></s:optgroup><s:optgroup label="opt02" list="#{"aa":"AA","bb":"BB" }"></s:optgroup>
11. s:checkboxlist标签(生成一组多选框)<s:checkboxlist list="#request.cities" listKey="cityId" listValue="cityName" name="love" label="喜爱的城市"></s:checkboxlist>
12.s:checkbox标签(在页面上提供一个勾选框,用于提交一个布尔值,典型的应用是“是否同意”)<s:checkbox name="married" label="婚否"></s:checkbox><input type="checkbox" name="married" value="true" id="userAction_married"/><input type="hidden" id="__checkbox_userAction_married" name="__checkbox_married" value="true" /><label for="userAction_married" class="checkboxLabel">婚否</label>
推荐阅读:Struts中异步传送XML和JSON类型的数据 http://www.linuxidc.com/Linux/2013-08/88247.htmStruts2的入门实例 http://www.linuxidc.com/Linux/2013-05/84618.htmStruts2学习笔记-Value Stack(值栈)和OGNL表达式 http://www.linuxidc.com/Linux/2015-07/120529.htm
struts2文件上传(保存为BLOB格式) http://www.linuxidc.com/Linux/2014-06/102905.htmStruts2的入门实例 http://www.linuxidc.com/Linux/2013-05/84618.htmStruts2实现ModelDriven接口 http://www.linuxidc.com/Linux/2014-04/99466.htm遇到的Struts2文件下载乱码问题 http://www.linuxidc.com/Linux/2014-03/98990.htmStruts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htmStruts2 注解模式的几个知识点 http://www.linuxidc.com/Linux/2013-06/85830.htm
Struts 的详细介绍:请点这里
Struts 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133116.htm