目录
数据标签
1. a标签
2. set标签
3. push标签
4. bean/param标签
5. date标签
6. include标签
7. url标签
8. property标签
9. debug标签
10. action标签
11. i18n标签
12. text标签
数据标签
1. a标签
<s:a...>用于构造HTML页面中的超链接。属性:
- action: 指定超链接action地址
- href: 超链接地址
- method: 指定action调用方法
- id:
- namespace:
2. set标签
用于设置一个新变量,并将新变量放入指定的作用域中。属性:
- var: 可选,新变量的引用
- value: 可选,值
- scope: 可选,作用域,包括page、request、session、application、action,如果没有指定,默认为action范围
<s:set name="myName" scope="page" value="'张三是谁?'"></s:set>
<s:property value="#attr.myName" />
<BR />
<s:set name="myAge" value="'十八'"></s:set>
<s:property value="myAge" />
输出:
张三是谁?
十八
3. push标签
将某个值置于值栈的顶部,标签结束后,将从值栈中移除。
<s:push value="'*'" >
<s:property/>
</s:push>
输出:
*
4. bean/param标签
用于创建javabean的实例,如果设置了var值,则存于Stack Context;否则,标签结束后自动移除。
bean标签属性:
- name: 必须,javabean类名(带包)
- var: 可选,将JavaBean实例放入Stack Context中,设置其访问名称
param标签属性:
- name: 可选
- value: 可选
<s:bean name="com.clzhang.ssh.demo8.StudentInfo" var="info1">
<s:param name="age">17</s:param>
<s:param name="gender">男</s:param>
<s:param name="idcard" value="'1102938279'"></s:param>
<s:param name="name" value="name"></s:param>
</s:bean>
<s:property value="#info1.name"/>|<s:property value="#info1.age"/>|<s:property value="#info1.gender"/>|<s:property value="#info1.idcard"/>
输出:
旧名称!|17|男|1102938279
5. date标签
格式化日期并输出。属性:
- name: 必须,指定日期值
- var: 可选,指定日期放入ValueStack中
- format: 可选,指定输出格式
<s:bean name="java.util.Date" var="dateRef"></s:bean>
<s:date format="yyyy-MM-dd hh-mm-ss" name="#dateRef" />
输出:
2013-12-12 02-07-13
6. include标签
用于将一个html,jsp或servlet包含到当前页面中,使用param传递参数
<s:include value="foot.jsp">
<s:param name="name" value="'脚本之家...'"></s:param>
</s:include>
foot.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
name参数的值是: ${param.name }
输出:
name参数的值是: 脚本之家...
7. url标签
生成URL地址,可以通过param标签传递请求参数。如果参数为中文,自动编码。属性:
- action: 与value属性二选一,指定生成的URL地址的action,如果不提供该属性,则使用value值为URL的地址值
- method: 可选,指定action调用方法
- namespace: 可选,
- value: 与action属性二选一,指定生成URL地址
- var: 可选,指定该链接变量,并将其放入ValueStack中
<s:url value="control.jsp" var="url">
<s:param name="id">*</s:param>
</s:url>
<a href="<s:property value="#url" />">链接</a>
<s:url action="test" var="url2"></s:url>
<s:property value="#url2"/>
输出:
链接 /st/test.action
8. property标签
用于输出值栈,Stack Context中的数据。仅提示,注意escape属性的使用,默认为true。属性:
- value:
- default:
- escape:
-如果输出值栈(Value Stack)中的值,不用#
-如果输出Stack Context中的值,要用#
-如果省略value,表示取出值栈的栈顶对象输出
<s:property value="html" escape="true" />
<s:property value="html" escape="false" />
输出:
9. debug标签
<s:debug></s:debug>
10. action标签
在JSP页面中访问Action类中的数据,执行某些操作,并返回相应数据。
- executeResult: 是否将Action返回的结果视图显示在当前页面中
- flush: 是否进行刷新
- ignoreContextParams: 是否忽略URL参数
- name: 指定调用哪个Action
- namespace: 指定调用Action的命名空间
- var: 将调用的Action的名称放到值栈中
其中,只有name参数是必须的,其它的都是可选的。
<s:action name="labelD!listString" executeResult="true">
<s:param name="name" value="name"></s:param>
<s:param name="age" value="16"></s:param>
</s:action>
输出:
name的值是:赵五 age的值是:16
提示:
- 无论何种方式提交查询action,参数都会传递到后台,只不过可以控制前台的显示与否。
- 好像struts2的acton标签中的ignoreContextParams属性和param子元素有冲突。
11. i18n标签
<s:i18n.../>标签主要用来进行资源绑定,然后将其放入ValueStack。<s:i18n.../>只有一个name属性,用来指定资源文件。
12. text标签
<s:text.../>标签主要用来输出国际化资源文件信息。当JSP页面中用<s:i18n.../>指定国际化资源文件后,就可以用<s:text.../>标签来输出key值对应的value什。属性:
- name: 必须,要获取的资源属性
- searchValueStack: 可选,假如无法获取资源属性,是否到ValueStack中搜索其属性
- var: 可选,命名得到的资源属性,然后放入ValueStack中
注意:不能在一个标签中使用<s:text.../>标签。如下方式是错误的:
<s:textfield name="lastName" label="<s:text name='person.lastName'/>"/>
正确的做法:使用 getText()方法来代替<s:text.../>标签以达到上面代码想要达到的目的
<s:textfield name="lastName" label="getText('person.lastName')"/>