前言

在jsp中有一些动作的执行不适合刷新页面来执行,比如点赞。一般在jsp中可以利用ajax实现这个功能,下面是一个不刷新页面来提交表单,数据或者单纯执行action的例子。

开始

首先在jsp中加入代码,在需要触发action的部分写入如下代码:

<input id="name" type="text">
<input type="button" value="ok" onclick="javascript:clickButton();" clientidmode="Static">

这个动作将id为name的数据传入后台,clientidmode=”Static”这个选项可以防止更改文本框内容后仍然提交以前的内容。这个action触发的js代码如下

<script type="text/javascript">function clickButton(){    var url = 'ajaxRequest.action';var params = {name:eval(document.getElementById('name')).value};jQuery.post(url, params, callbackFun, 'json');}function callbackFun(data){alert(data.result);}
</script>

在上述代码中的函数由上面的button触发,其中var url是你的触发的动作名称+.action,这个动作名称在struts.xml中设定。var params中是要传递的参数, name:eval(document.getElementById(‘name’)).value是获取id为name的内容并且赋值给变量name,jQuery.post(url, params, callbackFun, ‘json’);则是将数据post传递到后台,其中当参数返回时会调用callbackFun这个函数显示返回的result这个变量,这个可以直接使用java中的getter获得。

后台的函数如下:

package com.teamghz.action;public class AjaxExampleAction {private String name;private String result;// ajax请求参数赋值public void setName(String name) {this.name = name;}// ajax返回结果public String getResult() {return result;}public String execute() {this.result = "Hello! " + this.name + ".";System.out.println("hereh" + this.name);return "success";}
}

这个函数获得前端传入的name并且将其赋值给result,前段根据getter方法或者这个数据

strtus.xml配置如下

<package name="ajax" extends="json-default"><action name="ajaxRequest"class="com.teamghz.action.AjaxExampleAction"><result type="json"></result></action>
</package>

这样就可以完成不刷新页面调用action的功能了。

struts2实现不刷新页面执行action相关推荐

  1. ajax返回不刷新页面,Jquery ajax不刷新页面提交action取得返回值

    页面采用回调函数function(data) 处理后台返回的结果 a标签onclick事件触发加入秒杀 前台function addproduct(id){ var mprice=document.g ...

  2. struts2 ajax请求发现执行action两次原因

    struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次. 原因: struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面 ...

  3. jsp页面加载时自动执行action

    2012-01-17 13:50 470人阅读 评论(0) 收藏 举报 比如当我进入首页时,就要将数据库中的一些数据加载到welcome.jsp页面中,但是刚进入页面时,是没有执行action的,所以 ...

  4. VUE 返回上一页 不刷新页面、重复进入同一页面created重复执行、每次进入页面时都执行created、vue单页面多路由,前进刷新,返回不刷新

    每次进入页面时都执行created.前进刷新,返回不刷新 思路: 利用 keep-alive与vue-router配合使用 ,判断哪些页面需要每次进入刷新,哪些页面不需要每次进入刷新: keepAli ...

  5. jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。s:a actions:iterators:paramognl表达式...

    在编写SSH2项目的时候,除了使用<s:form>表单标签向Action类跳转并传递参数之外,很更多时候还需要用到<s:a action="XXX.action" ...

  6. Struts2——学习(5):页面跳转

    2019独角兽企业重金招聘Python工程师标准>>> 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...

  7. php防止恶意频繁刷新页面或form提交

    php防止恶意频繁刷新页面或form提交 很多方法:(以下仅简单方法的简单思路,对于防止菜鸟"黑客"足矣): 1.检测referer来源地址是否为本站.($_SERVER['HTT ...

  8. php ajax 点击后刷新当前页面,ajax请求值后返回会刷新页面?

    模板 控制器 模型 我用$.post提交表单,如果登录成功直接将信息保存到session,如果失败返回失败原因. 我是在模态框上写的表单,把失败原因显示在模态框上.但是返回后会自动刷新并关闭模态框. ...

  9. BJUI接受TabID实现添加或编辑后自动刷新页面

    场景 借助于BJUI框架,不管是添加还是编辑,都要共用同一个页面,执行同一个save方法. 参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

最新文章

  1. iOS开发 贝塞尔曲线UIBezierPath(后记)
  2. 02-24 面向对象--方法重载、隐藏
  3. 经典面试题(42):以下代码将输出的结果是什么?
  4. “发明在商业上获得成功”对专利法22条第三款有关创造性规定的影响
  5. 无惧海量并发,运维准点下班全靠它
  6. 多线程、多平台环境中的跟踪 - 使用 log4j 和 UNIX 命令来挖掘跟踪数据
  7. Activity实现 高亮显示活动节点,和所有已完成过的节点
  8. 机器视觉——鱼眼相机成像模型
  9. Spring Boot 整合监听器
  10. php未定义常量破解,如何使PHP未定义的常量注意到错误
  11. ES 新增字符串方法
  12. dataframe分组并求平均
  13. 2017百度秋招真题笔试之十字架
  14. Android 10(Q)GMS(cts/vts/gts)认证总结
  15. 摄影测量与遥感专业英语词汇
  16. 酒吧空间怎样量身打造
  17. qq空间有密码怎么看里面的相册
  18. 有4K电视,还需要单独的4K播放机吗?
  19. ExoPlayer播放器剖析(五)ExoPlayer对AudioTrack的操作
  20. java 德文转码_web开发中的JAVA字符转码

热门文章

  1. 【已解决】无法连接Ubuntu下的TeamViewer或Ubuntu下TeamViewer连接未就绪等问题
  2. matplotlib 用自定义颜色画散点图
  3. Oracle即将删除 Applet 插件
  4. C++ 内存中堆栈讲解
  5. 读书寄语:慎独自律,学思并重
  6. OC swift 一些常用第三方收集整理 (第三方集合)
  7. 关注绿色节能技术 致力降低存储成本
  8. 2021年高压电工考试报名及高压电工试题及解析
  9. c语言调用子函数程序,函数的调用
  10. 服务器数据恢复通用方法/服务器硬盘故障导致数据丢失解决方案