Struts2常用的Ajax标签
2009-02-03 11:47
288 查看
11.6
常用的Ajax标签
struts2为了简化Ajax过程,提供了一些常用的Ajax标签。可以满足一般的Ajax需求,对于一些更为复杂的Ajax通信过程,我们可以使用后加的JSON插件来实现。
11.6.1
div标签
div标签在页面上生成一个Div元素,但这个Div元素的内容不是静态内容,而是从服务器获取的内容。为了让该div标签能取得服务器的数据,必须为该div标签指定一个
(1)
href
属性,这个属性必须是一个Action,该Action负责生成该Div元素的内容。
---------------------------------------------------------------------------------------------------------------------------------------------
提示:因为div标签是一个Ajax标签,因此应为该标签增加theme=“ajax”属性。
---------------------------------------------------------------------------------------------------------------------------------------------
还可以指定该div标签生成的Div元素以固定的频率来更新自身的内容,为了指定更新频率和更新延迟,可以指定如下两个属性:
(2)
updateFreq
:指定更新Div内容的时间间隔,单位是ms。如果不指定该属性,则只在页面加载时更新该Div的内容。
(3)
delay
:指定更新Div内容的时间延迟,单位是ms。如果不指定,且指定了updateFreq属性,则页面加载后立即开始计时,准备刷新该Div的内容。如果没有指定updateFreq属性,则该属性没有任何意义。
如果服务器的响应包含了JavaScript代码,且希望在本页面内执行服务器响应的JavaScript代码,则可以为该div标签指定(4)
executeScripts
=“true”。
看下面的页面代码:
<%@
page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib
prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>远程Div</title>
<s:head
theme="ajax" />
</head>
<body>
<s:url
id="rd" value="/random.action"
/>
仅一次获取服务器内容的Div
<s:div
id="div1"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="%{rd}
" >
初始化文本
</s:div>
动态更新内容的Div,每隔1s刷新一次(通过指定updateFreq=“1000”)<br>
<s:div
id="dive2"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="%{rd}
"
updateFreq
=“1000”
indicator
=“indicator”>
初始化文本
</s:div>
<img id
="indicator"
src="${pageContext.request.contextPath}/images/indicator.gif">
alt="Loading... style="display:none"
/>
<br>
3s之后才开始更新(通过指定delay="3000")<br>
指定与服务器互交出错的提示(通过指定errorText属性)<br>
指定与服务器互交过程中的提示(通过指定loadText属性)<br>
<s:div
id="div3"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="%{rd}
"
updateFreq="1000"
delay
="3000"
errorText
="加载服务器数据出错"
loadingText="正在加载服务器内容">
初始化文本
</s:div>
指定显示系统出错提示(通过指定showErrorTransportText="true"
)<br>
<s:div
id="div4"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="/AjaxNoUrl.jsp"
updateFreq="1000"
showErrorTransportText="true"
loadingText="正在加载服务器内容">
初始化文本
</s:div>
执行服务器脚本(通过指定executeScripts="true")
<s:url
id="test" value="/Test3.action"
/>
<s:div
id="div5"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href=”%{test}“
updateFreq=”2000“
executeScripts=”true“
loadingText=”正在加载服务器内容“>
初始化文本
</s:div>
</body>
</html>
上面的div标签还使用了如下两个Ajax标签的通用属性
:
(1)showErrorTransportText
:设置是否显示服务器的错误信息。
(2)loadingText
:设置当服务器响应还未加载时的显示信息。
上面div标签请求的第一个
Aciton是rando.action,该Action对应的的JSP页面代码如下:
//输出一个服务器端的随机数字
服务器返回的随机数字是:<s:property
value="rdmstr
" />
第二个
Action是Test3.action,这个Action对应的JSP页面代码如下:
<!--执行JavaScript代码-->
<script
language="JavaScript" type="text/javascript">
alert('Spring2.0宝典');
</script>
//输入页面内容
轻量级J2EE企业应用实战
<script
language="JavaScript" type="text/javascript">
alert('基于J2EE的Ajax宝典');
</script>
第二个Action对应的JSP页面中有JavaScript代码,为了在目标页面中执行js代码,需要在div标签中指定executeScripts=“true”。
在本实例中
,指定div标签中href属性时,用的是以下方法:
<!--通过表达式语法来指定href属性-->
href="
%{test}
"
对于test变量的值,必须使用url标签来生成该变量的值。如下:
<!--使用url标签来生成-->
<s:url
id="test" value="/Test3.action"
/>
---------------------------------------------------------------------------------------------------------------------------------------------
注意
:Struts2要求所有的Ajax标签指定href属性时,都应该指向一个由url标签生成的变量,而不是直接给出Action名
---------------------------------------------------------------------------------------------------------------------------------------------
在div标签
中指定了一个handler属性,该属性指向一个JavaScript函数。这意味着每次是该Div内容刷新时,该JavaScript函数都会被调用。一旦div标签指定了handler属性,则该div标签的herf属性所指定的属性值将完全失去作用。
除此之外,
div标签还可以将一个表单里包含的表单域转换成对应的请求参数,并且把这些请求参数发送给远程服务器。为了让一个div标签发送表单里包含的表单域,属性如下:
(5)
formId:
该属性的属性值为一个表单元素的ID
除此之外,为了通过在JavaScript代码中手动控制div标签启动自动更新,关闭自动更新,可以指定以下两个属性:
(6)
startTimerListenTopics:
该属性设置一个监听的事件主题,当有Struts2组件向该主题发布事件时,该div标签的计时器被启动。
(7)
stopTimerListenTopics:
该属性设置一个监听的事件主题,当有Struts2组件向该主题发布事件时,该div标签的计时器被关闭。
P391的一个例子,示范了上面三个属性的用法。
常用的Ajax标签
struts2为了简化Ajax过程,提供了一些常用的Ajax标签。可以满足一般的Ajax需求,对于一些更为复杂的Ajax通信过程,我们可以使用后加的JSON插件来实现。
11.6.1
div标签
div标签在页面上生成一个Div元素,但这个Div元素的内容不是静态内容,而是从服务器获取的内容。为了让该div标签能取得服务器的数据,必须为该div标签指定一个
(1)
href
属性,这个属性必须是一个Action,该Action负责生成该Div元素的内容。
---------------------------------------------------------------------------------------------------------------------------------------------
提示:因为div标签是一个Ajax标签,因此应为该标签增加theme=“ajax”属性。
---------------------------------------------------------------------------------------------------------------------------------------------
还可以指定该div标签生成的Div元素以固定的频率来更新自身的内容,为了指定更新频率和更新延迟,可以指定如下两个属性:
(2)
updateFreq
:指定更新Div内容的时间间隔,单位是ms。如果不指定该属性,则只在页面加载时更新该Div的内容。
(3)
delay
:指定更新Div内容的时间延迟,单位是ms。如果不指定,且指定了updateFreq属性,则页面加载后立即开始计时,准备刷新该Div的内容。如果没有指定updateFreq属性,则该属性没有任何意义。
如果服务器的响应包含了JavaScript代码,且希望在本页面内执行服务器响应的JavaScript代码,则可以为该div标签指定(4)
executeScripts
=“true”。
看下面的页面代码:
<%@
page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib
prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>远程Div</title>
<s:head
theme="ajax" />
</head>
<body>
<s:url
id="rd" value="/random.action"
/>
仅一次获取服务器内容的Div
<s:div
id="div1"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="%{rd}
" >
初始化文本
</s:div>
动态更新内容的Div,每隔1s刷新一次(通过指定updateFreq=“1000”)<br>
<s:div
id="dive2"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="%{rd}
"
updateFreq
=“1000”
indicator
=“indicator”>
初始化文本
</s:div>
<img id
="indicator"
src="${pageContext.request.contextPath}/images/indicator.gif">
alt="Loading... style="display:none"
/>
<br>
3s之后才开始更新(通过指定delay="3000")<br>
指定与服务器互交出错的提示(通过指定errorText属性)<br>
指定与服务器互交过程中的提示(通过指定loadText属性)<br>
<s:div
id="div3"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="%{rd}
"
updateFreq="1000"
delay
="3000"
errorText
="加载服务器数据出错"
loadingText="正在加载服务器内容">
初始化文本
</s:div>
指定显示系统出错提示(通过指定showErrorTransportText="true"
)<br>
<s:div
id="div4"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href="/AjaxNoUrl.jsp"
updateFreq="1000"
showErrorTransportText="true"
loadingText="正在加载服务器内容">
初始化文本
</s:div>
执行服务器脚本(通过指定executeScripts="true")
<s:url
id="test" value="/Test3.action"
/>
<s:div
id="div5"
theme="ajax"
cssStyle="border:lpx solid
black; background-color:#dddddd;
width:3000px;height:40px;padding-top:8px;padding-left:20px"
href=”%{test}“
updateFreq=”2000“
executeScripts=”true“
loadingText=”正在加载服务器内容“>
初始化文本
</s:div>
</body>
</html>
上面的div标签还使用了如下两个Ajax标签的通用属性
:
(1)showErrorTransportText
:设置是否显示服务器的错误信息。
(2)loadingText
:设置当服务器响应还未加载时的显示信息。
上面div标签请求的第一个
Aciton是rando.action,该Action对应的的JSP页面代码如下:
//输出一个服务器端的随机数字
服务器返回的随机数字是:<s:property
value="rdmstr
" />
第二个
Action是Test3.action,这个Action对应的JSP页面代码如下:
<!--执行JavaScript代码-->
<script
language="JavaScript" type="text/javascript">
alert('Spring2.0宝典');
</script>
//输入页面内容
轻量级J2EE企业应用实战
<script
language="JavaScript" type="text/javascript">
alert('基于J2EE的Ajax宝典');
</script>
第二个Action对应的JSP页面中有JavaScript代码,为了在目标页面中执行js代码,需要在div标签中指定executeScripts=“true”。
在本实例中
,指定div标签中href属性时,用的是以下方法:
<!--通过表达式语法来指定href属性-->
href="
%{test}
"
对于test变量的值,必须使用url标签来生成该变量的值。如下:
<!--使用url标签来生成-->
<s:url
id="test" value="/Test3.action"
/>
---------------------------------------------------------------------------------------------------------------------------------------------
注意
:Struts2要求所有的Ajax标签指定href属性时,都应该指向一个由url标签生成的变量,而不是直接给出Action名
---------------------------------------------------------------------------------------------------------------------------------------------
在div标签
中指定了一个handler属性,该属性指向一个JavaScript函数。这意味着每次是该Div内容刷新时,该JavaScript函数都会被调用。一旦div标签指定了handler属性,则该div标签的herf属性所指定的属性值将完全失去作用。
除此之外,
div标签还可以将一个表单里包含的表单域转换成对应的请求参数,并且把这些请求参数发送给远程服务器。为了让一个div标签发送表单里包含的表单域,属性如下:
(5)
formId:
该属性的属性值为一个表单元素的ID
除此之外,为了通过在JavaScript代码中手动控制div标签启动自动更新,关闭自动更新,可以指定以下两个属性:
(6)
startTimerListenTopics:
该属性设置一个监听的事件主题,当有Struts2组件向该主题发布事件时,该div标签的计时器被启动。
(7)
stopTimerListenTopics:
该属性设置一个监听的事件主题,当有Struts2组件向该主题发布事件时,该div标签的计时器被关闭。
P391的一个例子,示范了上面三个属性的用法。
相关文章推荐
- struts2常用标签库之AJAX标签
- Struts2常用的Ajax标签
- Struts2常用的Ajax标签
- struts2中ajax标签的常用标签
- Struts2:常用标签总结
- struts2 常用标签介绍
- 1. Struts2页面开发中常用标签使用说明
- Struts2学习之3(文件的上传下载,OGNL表达式,常用标签,表单重复提交)
- struts2常用标签总结,转来的做下记录,以备将来用
- struts2常用标签详解
- Struts2常用表单标签
- struts2 标签初识 Ajax Tags 上
- struts2常用标签详解
- JSTL c标签和Struts2 s标签常用功能对比
- Struts2常用标签总结(转载)
- Struts2标签库常用标签
- Java学习笔记 Struts2常用标签
- Struts2 常用标签库
- Struts2常用标签总结
- struts2常用标签总结