truts的标签库
OGNL -数据访问语言。
Stack Context(OGNL Context/Context Map/Action Context)
ValueStack
Stack Context中包含了ValueStack(根对象)。
控制标签:
if/elseif/else --模拟流程控制
iterator --模拟流程控制的迭代。
append/merge --把两个或N个已有的集合合并成新的集合。
generator --分割出集合。
sort --对集合元素排序,需要指定一个Comparator.
subset --截取子集合。
数据标签:
set --设置变量值。var指定变量名字,value指定变量值。scope指定范围。
bean --创建一个Bean对象,var指定对象的名(Stack Context)。name指定实现类。
debug --帮助调试。可以开发者观察ValueStack以及Stack Context中的数据。
i18n --为指定页面加载国际资源文件
text --输出国际化消息。也通过name指定国际化资源包的baseName。
property --输出表达式的值。通过value属性来指定表达式。
如果没有指定value属性,将直接输出ValueStack栈顶的值。
action --可以直接在页面上调用指定Action
var:指定将被调用Action放入Stack Context(官方文档是胡扯的)
executeResult:指定是否把被调Action的处理结果完包含到当前页面中
date --对日期进行格式化输出
name:指定要格式化输出的日期。
format:指定格式字符串。
include --用于包含指定的JSP页面。
param --用于设置参数
push --据表达式的值,放入ValueStack的栈顶。
当我们的对象所在对象图“很深”时,可以将该对象“推入”ValueStack栈顶。
直接获取桡顶元素,因此性能更好
UI标签
主题与模板
当我们在页面上使用s:textfield标签时,它生成两列布局中,并提供了label标签。
---因为Struts 2为所有标签都提供了一个模板。
每一个标签所表现出来的效果 ----由它对应的模板来决定。
如果为所有的标签都提供了模板,这系列的模板就组成了主题。
Struts 2默认提供了3个主题:
simple:没有额外的附加行为的主题。
xhmtl:这个是默认主题。
1.两列布局
2.生成label
3.自动输出类型转化,输入校验的错误提示。
4.客户端校验支持
css_xhtml:就是在xhtml增加了一些css样式。
如果有需要,我们也可以针对自己的项目开发自定义主题。
如何设置主题?
1.也可直接通过struts.ui.theme来设置默认的主题
2.通过page/request/sesssion/application范围
3.为标签设置theme属性。子标签默认使用父标签属性所设置的主题。
这些UI标签可指定cssClass,cssStyle,来指定css样式。
还可指定大量的onXxx属性,用于绑定JavaScript函数。
表单标签:
checkbox 只是生成复选框
head 引入一些辅助的css样式单的JS脚本。
file 生成一个文件上传域
form
hidden
label
password
reset
submit
textarea
textfield
checkboxlist/radio/select/optgroup
combobox ---生成一个文本框与列表框的组合
updownselect --它是一个增强版的select.
optiontransferselect ---它是两个updownselect的组合。
token --访刷新
默认情况下,如果没有进行防刷新控制,每次刷新都会添加一条完全相同的记录。
(1)需要在表单页面上增加<s:token/>标签。
(2)在action配置中增加一个token拦截器---这绘 检测用户是否刷新了页面。
当它检测用户刷新页面时,系统会返加一个invalid.token的逻辑视图。
actionerror/actionmessage ----它们体现的是Struts 2的消息机制。
当我们需要把Action中的一段文本,传入下一个页面显示进,
就可借助Struts 2的消息机制。
(1)Action中可通过addActionError()或addActionMessage()来添加消息。
(2)接下来就可以在下一个页面使用<s:actionerrro/>或<s:actopmessage/>输出消息。
fielderror: --输出类型转换失败、输入校验失败后的错误提示。
OGNL -数据访问语言。
Stack Context(OGNL Context/Context Map/Action Context)
ValueStack
Stack Context中包含了ValueStack(根对象)。
控制标签:
if/elseif/else --模拟流程控制
iterator --模拟流程控制的迭代。
append/merge --把两个或N个已有的集合合并成新的集合。
generator --分割出集合。
sort --对集合元素排序,需要指定一个Comparator.
subset --截取子集合。
数据标签:
set --设置变量值。var指定变量名字,value指定变量值。scope指定范围。
bean --创建一个Bean对象,var指定对象的名(Stack Context)。name指定实现类。
debug --帮助调试。可以开发者观察ValueStack以及Stack Context中的数据。
i18n --为指定页面加载国际资源文件
text --输出国际化消息。也通过name指定国际化资源包的baseName。
property --输出表达式的值。通过value属性来指定表达式。
如果没有指定value属性,将直接输出ValueStack栈顶的值。
action --可以直接在页面上调用指定Action
可以直接在页面上把Action的外理结果包含到本页面中。
name和namespace确定调用哪个Actionvar:指定将被调用Action放入Stack Context(官方文档是胡扯的)
executeResult:指定是否把被调Action的处理结果完包含到当前页面中
ignoreContextParams:控制当前页面请求参数,是否传入被用的Action
这个标签的功能是比较有用的:假如我们进入一个添加用户的页面:
用户名:????
密码:????
性别:下拉列表 <s:action var="genders" name="listGender">
学历:下拉列表 -来自系统的数据库中数据 <s:action var="jiguans" name="listJiguan">
date --对日期进行格式化输出
name:指定要格式化输出的日期。
format:指定格式字符串。
include --用于包含指定的JSP页面。
param --用于设置参数
push --据表达式的值,放入ValueStack的栈顶。
当我们的对象所在对象图“很深”时,可以将该对象“推入”ValueStack栈顶。
直接获取桡顶元素,因此性能更好
UI标签
主题与模板
当我们在页面上使用s:textfield标签时,它生成两列布局中,并提供了label标签。
---因为Struts 2为所有标签都提供了一个模板。
每一个标签所表现出来的效果 ----由它对应的模板来决定。
如果为所有的标签都提供了模板,这系列的模板就组成了主题。
Struts 2默认提供了3个主题:
simple:没有额外的附加行为的主题。
xhmtl:这个是默认主题。
1.两列布局
2.生成label
3.自动输出类型转化,输入校验的错误提示。
4.客户端校验支持
css_xhtml:就是在xhtml增加了一些css样式。
如果有需要,我们也可以针对自己的项目开发自定义主题。
如何设置主题?
1.也可直接通过struts.ui.theme来设置默认的主题
2.通过page/request/sesssion/application范围
3.为标签设置theme属性。子标签默认使用父标签属性所设置的主题。
这些UI标签可指定cssClass,cssStyle,来指定css样式。
还可指定大量的onXxx属性,用于绑定JavaScript函数。
表单标签:
checkbox 只是生成复选框
head 引入一些辅助的css样式单的JS脚本。
file 生成一个文件上传域
form
hidden
label
password
reset
submit
textarea
textfield
checkboxlist/radio/select/optgroup
combobox ---生成一个文本框与列表框的组合
updownselect --它是一个增强版的select.
optiontransferselect ---它是两个updownselect的组合。
doubleselect --它也是两个列表框,而且有级联效果。
避免两列部局的方式:
<s:form action="">
<s:textfield name="username" label="用户名"></s:textfield>
<s:password name="pass" label="密码"></s:password>
<s:checkbox name="married" label="是否已婚"></s:checkbox>
<tr align="center">
<td colspan="2">
<s:submit value="提交" theme="simple"></s:submit>
<s:reset value="重置" theme="simple"></s:reset>
</td>
</tr>
</s:form>
token --访刷新
默认情况下,如果没有进行防刷新控制,每次刷新都会添加一条完全相同的记录。
(1)需要在表单页面上增加<s:token/>标签。
(2)在action配置中增加一个token拦截器---这绘 检测用户是否刷新了页面。
当它检测用户刷新页面时,系统会返加一个invalid.token的逻辑视图。
(3)还需要为invalid.token的逻辑视图配置一个物理视图资源。
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="default" extends="struts-default">
<action name="addAction" class="pers.zkr.action.UserAddAction">
<interceptor-ref name="token"></interceptor-ref>
<!-- 下面这是Struts 2默认的拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<!--这个是拦截器返回的的视图 -->
<result name="invalid.token">/WEB-INF/content/refresh.jsp</result>
<result type="chain">show</result>
</action>
<action name="show" class="pers.zkr.action.ShowAction">
<result>/WEB-INF/content/showlist.jsp</result>
</action>
<action name="*">
<!--这里其实也有一个拦截器,只是在没有配置其它的拦截器的时候的,不用添加 -->
<result>/WEB-INF/content/{1}.jsp</result>
</action>
</package>
</struts>
非表单标签
actionerror/actionmessage ----它们体现的是Struts 2的消息机制。
当我们需要把Action中的一段文本,传入下一个页面显示进,
就可借助Struts 2的消息机制。
(1)Action中可通过addActionError()或addActionMessage()来添加消息。
(2)接下来就可以在下一个页面使用<s:actionerrro/>或<s:actopmessage/>输出消息。
fielderror: --输出类型转换失败、输入校验失败后的错误提示。