Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 2086|回复: 0

struts2的div,submit,a标签实现无刷新获取数据

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-6-6 15:41:34 | 显示全部楼层 |阅读模式

    struts2把div元素与Ajax技术封装成div标签,submit标签,a标签等,方便开发者使用。div标签能够显示其他页面的内容,而这个页面的内容并不是用iframe等嵌套进来的。div标签能够用Ajax获取该页面的内容,然后在标签内部显示。div标签处处体现着Ajax技术的无页面刷新页面,即时相应等特点。
    本例将使用div标签显示新闻列表,用submit标签Ajax查询新闻列表。div标签显示URL/struts2/news.action 的内容,并且每隔5秒钟刷新一次,刷新时显示“正在刷新”等信息。另外添加了一个查询表单,用submit标签查询,查询结果直接显示到本页面上,代码如下:
    [color=#990066,strength=3);]div.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="struts" %>
    <HTML>
    <struts:head theme="ajax" debug="false"/>
      <body>
      
    <!-- 清空session的计数器 -->  
    <struts:set name="clear" value="%{#session.updatedTimes = 0}"></struts:set>
    <!-- 要显示页面的 URL -->
    <struts:url id="news" action="divNews"></struts:url>
    <!-- indicator -->
    <span id="indicator" style="background:#FFF00;padding:4px">
       正在刷新<struts:property value="#news"/>...
    </span>
    <!-- div标签 显示一个页面 每隔5秒钟刷新一次 -->
    <struts:div theme="ajax" href="%{news}" showLoadingText="false" updateFreq="5000" indicator="indicator">
    </struts:div>
    <!-- Ajax查询表单 -->
    <struts:form name="newsActionForm" id="newsActionForm" namespace="/">
       <struts:textfield name="key" label="关键字"></struts:textfield>
       <struts:submit value="查询新闻" href="%{news}" formId="newsActionForm" theme="ajax" targets="divNewsSearch"></struts:submit>
    </struts:form>
    <!-- 查询结果显示在这里 -->
    <div id="divNewsSearch"></div>
      </body>
    </html>
    注:struts2头,div标签都要使用Ajax主题。div标签的href指定要显示页面的URL,使用url标签定义。submit标签可以以post,get方式提交表单,也可以使用Ajax方式提交,使用Ajax的关键是要定义href属性(使用url标签),formId属性(提交哪个表单的数据)与targets属性(结果显示在哪里),并指定Ajax主题。formId必须与查询表单的name.id属性一致。新闻列表与查询新闻使用同一个Action,代码如下:
    DivNewAction.java
    package com.zhangjie.struts2.action;
    import java.util.ArrayList;
    import java.util.List;
    import org.apache.struts2.config.Result;
    import org.apache.struts2.config.Results;
    import com.opensymphony.xwork2.ActionSupport;
    @Results([email=value=%7B@Result(name=%22input%22,value=%22/divNews.jsp]value={@Result(name="input",value="/divNews.jsp[/email]")}) //零配置
    public class DivNewsAction extends ActionSupport {
    private static String[] ALL_NEWS = {
      "中国将举行2008年奥运会,开幕式日期2008年8月8日",
      "继水立方后,又一奥运建筑鸟巢体育馆日前竣工",
      "嫦娥探月卫星成功发射升空",
      "神舟六号宇宙飞船胜利返航",
      "中国A股股市超跌反弹",
    };

    private String key;
    private List<String> news = new ArrayList<String>();  //List对象

    public String execute(){
      if(key == null) key = ""; //如果 key为null,设为空
      for(String n :ALL_NEWS){  //遍历新闻标题
       if(n.contains(key)){  //如果包含关键字
        news.add(n);      //则显示
       }
      }
      return INPUT;
    }
    public static String[] getALL_NEWS() {
      return ALL_NEWS;
    }
    public static void setALL_NEWS(String[] all_news) {
      ALL_NEWS = all_news;
    }
    public String getKey() {
      return key;
    }
    public void setKey(String key) {
      this.key = key;
    }
    public List<String> getNews() {
      return news;
    }
    public void setNews(List<String> news) {
      this.news = news;
    }
    }
    效果如下:


    回复

    使用道具 举报

    该用户从未签到

    发表于 2011-9-26 12:59:11 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-20 13:02 , Processed in 0.397318 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表