Struct2_使用Ajax调用Action方法并返回值
src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.js"></script>
</script>
package action; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map; import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.validation.SkipValidation; import freemarker.template.SimpleDate; @ParentPackage("json-default")
@Namespace("/login1")
public class LoginActionNoNamespce extends SuperActionSupport {
private static final long serialVersionUID = 1L;
private Map<String, String> dataMap; //会把本类所有getter方法序列化成字符串返回给jsp页面
public Map<String, String> getDataMap() {
return dataMap;
} public void setDataMap(Map<String, String> dataMap) {
this.dataMap = dataMap;
} @SkipValidation
@Action(value = "ajaxExecute", results = { @Result(type = "json", params = { "root", "dataMap" }) })
public String ajaxExecute() throws Exception {
this.dataMap = new HashMap<String, String>(); // 参数名称必须和jsp的空间名称一一对应
String userName = request.getParameter("userName");
String password = request.getParameter("password");
dataMap.put("isSuccess", "true");
SimpleDateFormat now = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
dataMap.put("sayHi", "Hi:" + userName + " 当前时间为:" + now.format(new Date()) + password); return SUCCESS;
}
}
- 类注解:@ParentPackage("json-default"),比如为json-default,不能为struts-default
json-default是继承于structs-default的,见.m2\repository\org\apache\struts\struts2-json-plugin\2.3.16.3\struts2-json-plugin-2.3.16.3.jar\struts-plugin.xml - Action注解:@Action(value = "ajaxExecute", results = { @Result(type = "json", params = { "root", "dataMap" }) }),这里的type必须为json、root是固定值,去掉params节点会返回undefined
- 这里的dataMap定义为:private Map<String, String> dataMap;必须要添加getter、setter参数,否则返回null
- JSP页面(这里可以用命名空间,如
url : '/login1/ajaxExecute', @ParentPackage("json-default")这样设置就不会报错) - maven管理,需要引用的库
<dependencies><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.16</version><exclusions><exclusion><groupId>org.javassist</groupId><artifactId>javassist</artifactId></exclusion></exclusions></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-convention-plugin</artifactId><version>2.3.16.3</version></dependency><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-json-plugin</artifactId><version>2.3.16.3</version></dependency><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version></dependency>
</dependencies>
Struct2_使用Ajax调用Action方法并返回值的更多相关文章
- WebView调用js方法获取返回值的完美解决方案
在Android项目中我们或多或少会涉及到与js交互的问题,这其中WebView是必须掌握的控件,今天主要说说我们通过WebView调用js方法,然后如何很好的获取返回值.这里我总结了三种方式,大家可 ...
- Jquery的ajax获取action中的返回值
js部分: function check() { $.ajax({ type : "POST", url : "myCloudWantseeListHD ...
- MVC教程五:Action方法的返回类型
MVC中的Action方法的返回值一般有以下几种: 类型 s说明 EmptyResult 不进行任何操作 ContentResult 将指定内容作为文本输出 JsonResult 输出JSON字符串 ...
- 7 -- Spring的基本用法 -- 10... 获取其他Bean的属性值;获取Field值;获取任意方法的返回值
7.10 高级依赖关系配置 组件与组件之间的耦合,采用依赖注入管理:但基本类型的成员变量值,应直接在代码中设置. Spring支持将任意方法的返回值.类或对象的Field值.其他Bean的getter ...
- asp.net mvc 使用Ajax调用Action 返回数据【转】
使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=& ...
- 一个方法中的ajax在success中renturn一个值,但是方法的返回值是undefind?
https://segmentfault.com/q/1010000003762379 A页面 console.log(handleData("search_list", &quo ...
- 关于ajax中return并不能作为方法的返回值
接下来关于ajax中的return值最后没有办法是方法的最终返回值问题 login(username,password) { console.log("进入方法"); $.ajax ...
- C#实现简易ajax调用后台方法
在当前WEB当中,有些人都会抛弃asp.net的服务器控件,转而使用ajax来进行数据的交互和存储. 当我们大量使用ajax的时候,对于新手而言,肯定会创建很多的ashx或aspx页面,通过拼接参数, ...
- asp.net如何在前台利用jquery Ajax调用后台方法
一 :最近因为帮同事开发项目使用到了asp.net,而我又想实现Ajax异步请求....从网上查询了一下资料之后,原来在asp.net中利用Ajax调用后台方法同样很简单,为了便于自己以后查看,特将此 ...
随机推荐
- linux下查看机器配置
查看cpu信息:lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): ...
- linux命令(23):cp命令
实例一:复制单个文件到目标目录 cp 1.log /home 说明: 1.在没有带-a参数时,两个文件的时间是不一样的.在带了-a参数时,两个文件的时间是一致的. 2.当目标文件已存在,会询问是否覆盖 ...
- graylog安装
官网:http://docs.graylog.org/en/2.4/pages/installation/os/centos.html Prerequisites Taking a minimal s ...
- .NET 二进制序列化器,SOAP序列化器,XML序列化器
这里就不说JSON序列化了,只介绍三种:二进制序列化器,SOAP序列化器,XML序列化器 直接上代码: /// <summary> /// 二进制序列化器. /// 最节省流量,压缩程度最 ...
- (翻译)一起使用 .NET 和 Docker——DockerCon 2018 更新
原文:https://blogs.msdn.microsoft.com/dotnet/2018/06/13/using-net-and-docker-together-dockercon-2018-u ...
- hdu多校6
这个场要恶心死我了.. 1001 积分题,不要四舍五入 //#pragma comment(linker, "/stack:200000000") //#pragma GCC op ...
- 转:攻击JavaWeb应用[3]-SQL注入
转:http://static.hx99.net/static/drops/tips-236.html 攻击JavaWeb应用[3]-SQL注入 园长 · 2013/07/16 18:28 注:本节重 ...
- 洛谷——P2681 众数
P2681 众数 题目背景 Alice和Bob玩游戏 题目描述 Alice现在有一个序列a1.a2...an 现在她需要Bob支持询问一个区间内的众数,还要支持修改一个位置的ai 输入输出格式 输入格 ...
- Jenkins实现CI(Continuous Integration)到CD(Continuous Delivery)
Pipeline as Code是2.0的精髓所在,是帮助Jenkins实现CI(Continuous Integration)到CD(Continuous Delivery)华丽转身的关键推手.所谓 ...
- Xamarin中Unsupported major.minor version 52.0问题解决
Xamarin中Unsupported major.minor version 52.0问题解决 出现这种问题,是由于所使用的Java代码使用Java 8所才具有的特性.这个时候,需要将JDK升级到J ...