日期:2014-05-16  浏览次数:20613 次

Struts2的Ajax标签介绍
Struts2的Ajax标签介绍

常用的Ajax标签

Struts2为了简化Ajax过程,提供了一些常用的Ajax标签,对于一些更复杂的Ajax通信过程,我们可以使用JSON插件来实现。

1,div标签

div标签在页面上生成一个div元素,但这个div元素的内容不是静态内容,而是从服务器获取的内容。必须为该div标签指定一个href属性,这个href属性必须是一个action,该action负责生成该div元素的内容。还可以指定该div标签生成的div元素以固定的频率来更新自身的内容,可以指定如下两个属性:

updateFreq:指定更新div的时间间隔,单位是ms,如果不指定,则只在页面加载时更新该div的内容。

delay:指定更新div内容的时间延迟,单位是ms,如果没有指定updateFreq属性,则该属性没有意义。

如果服务器包含了JavaScript代码,且希望在本页面内执行服务器响应的JavaScript代码,则可以为该div标签标签指定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<br>

<s:div id="div1"

        theme="ajax"

        cssStyle="border: 1px solid black;background-color:#dddddd;

    width:300px;height:40px;padding-top:8px;padding-left:20px"

        href="%{rd}">

初始化文本

</s:div>

动态更新内容的Div,每隔1s刷新一次(通过指定updateFreq="1000")<br>

使用indicator(通过指定indicator="indicator")<br>

<s:div id="div2"

        theme="ajax"

        cssStyle="border: 1px solid black;background-color:#dddddd;

    width:300px;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: 1px solid black;background-color:#dddddd;

    width:300px;height:40px;padding-top:8px;padding-left:20px"

        href="%{rd}"                     //使用变量来指定URL

        updateFreq="1000"

   delay="3000"

   errorText="加载服务器数据出错"

   loadingText="正在加载服务器内容">

初始化文本

</s:div>

指定显示系统出错提示(通过指定showErrorTransportText="true")<br>

<s:div id="div4"

        theme="ajax"

        cssStyle="border: 1px solid black;background-color:#dddddd;

    width:300px;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"