Sample.html

<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>form</title>
<script type="text/javascript" src="js/angular.min.js"></script>
</head>
<body>
<form name="form1" id="form1" ng-controller="form1">
账号:<input type="text" name="username" ng-model="formData.username" required>
<span style="color:red" ng-show="form1.formData.username.$dirty && form1.formData.username.$invalid">
<span ng-show="form1.formData.username.$error.required">请输入账号</span>
</span>
<br />
邮箱:<input type="text" name="email" ng-model="formData.email" required>
<span style="color:red" ng-show="form1.formData.email.$dirty && form1.formData.email.$invalid">
<span ng-show="form1.formData.email.$error.required">请输入邮箱</span>
</span> <p>
<input type="submit" ng-disabled="form1.formData.username.$dirty && form1.formData.username.$invalid || form1.formData.email.$dirty && form1.formData.email.$invalid" value="提交" ng-click="submitForm()">
</p>
</form>
<script type="text/javascript">
var app = angular.module('myApp',[]);
app.controller("form1",function($scope,$http){
$scope.formData = {};
$scope.submitForm = function() {
$http({
method : 'POST',
url : 'Sample.action',
responseType : 'text',
data : $scope.formData
}).success(function(data) {
console.log(data); if (data=="success") {
location.replace("Main.action");
} else {
alert(data.message);
}
});
};
});
</script>
</body>
</html>

angularjs默认提交的方式是appliction/json,我在获取提交的参数username和pwd费了一番功夫,后台用struts2获取username和pwd的代码如下

SampleAction.java

    InputStream is = arg0.getInputStream();
String headerJson = IOUtils.toString(is);
String headerMap = new Gson().fromJson(headerJson, new TypeToken<Map<String, String>>() {}.getType());
String username = ObjectUtils.toString(headerMap.get("username"));
String pwd = ObjectUtils.toString(headerMap.get("pwd"));

我后来是在基类做了一个改造:

public class ActionSupportExtend extends ActionSupport implements ServletRequestAware {

    private HttpServletRequest request;

    private String headerJson;
private Map<String,String> headerMap; public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
try {
InputStream is = arg0.getInputStream();
this.headerJson = IOUtils.toString(is);
this.headerMap = new Gson().fromJson(headerJson, new TypeToken<Map<String, String>>() {}.getType());
} catch (IOException e) {
e.printStackTrace();
}
} public String getHeaderAttribute(String key) {
String returnValue = "";
if(this.headerMap!=null) {
if(this.headerMap.containsKey(key)) {
returnValue = ObjectUtils.toString(this.headerMap.get(key));
}
}
return returnValue;
} public HttpServletRequest getRequest() {
return request;
} public void setRequest(HttpServletRequest request) {
this.request = request;
} public String getHeaderJson() {
return headerJson;
} public void setHeaderJson(String headerJson) {
this.headerJson = headerJson;
} }

那么在每次取用angularjs的ajax异步请求的参数,就可以直接这么写:

public class SampleAction extends ActionSupportExtend {

    @Override
public String execute() throws Exception {
String username = getHeaderAttribute("username");
String pwd = getHeaderAttribute("pwd");
// 业务逻辑代码省略
return SUCCESS;
} }

如何使用angularjs实现ajax异步请求的更多相关文章

  1. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  2. spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING

    话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...

  3. jquery Ajax异步请求之session

    写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...

  4. ajax异步请求Response.Redirect重定向

    一个ajax异步请求报错->捕获异常->重定向错误提示页面.  一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...

  5. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  6. MVC&WebForm对照学习:ajax异步请求

    写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认 ...

  7. AJAX异步请求原理和过程

    AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...

  8. Ajax异步请求-简单模版

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

  9. art.dialog 与 ajax 异步请求

    上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助. 主要习惯使用 art.dialog 框架,非常好用,在异步请求上,它提供了很多简便的方法. 加载使用art ...

随机推荐

  1. class getResourceAsStream 和 classloader getResourceAsStream获取资源的不同

    工程目录结构: prj(工程根目录) cn json classloader GetResourceByClassAndClassLoader.Java beans.xml /** * */ pack ...

  2. 洛谷——P1123 取数游戏

    P1123 取数游戏 题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取 ...

  3. 【BZOJ 4103】【THUSC 2015】异或运算

    http://www.lydsy.com/JudgeOnline/problem.php?id=4103 对长的那一维建可持久化trie树(主席树?) 最主要的思路是对短的那一维每一位暴力,每一位都记 ...

  4. 【模拟】Flo's Restaurant

    [poj2424]Flo's Restaurant Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2960   Accept ...

  5. 【推导】【分类讨论】Codeforces Round #431 (Div. 1) B. Rooter's Song

    给你一个这样的图,那些点是舞者,他们每个人会在原地待ti时间之后,以每秒1m的速度向前移动,到边界以后停止.只不过有时候会碰撞,碰撞之后的转向是这样哒: 让你输出每个人的停止位置坐标. ①将x轴上初始 ...

  6. vue的开发环境搭建命令加图解

    vue的开发环境的搭建 不管什么软件我们都要去官网下载安装,这是作为专业程序员的安全意识. 1.安装node.js 官方下载的页面:点击这里 大约展示的页面是这样子的!我们演示是windows 64位 ...

  7. Error attempting to get column 'xxx' from result set. Cause: java.sql.SQLException: 无法转换为内部表示

    因为<resultMap>中映射的实体类属性类型与数据库字段类型不一致造成的.

  8. [转]spring tx:advice 和 aop:config 配置事务

      <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www. ...

  9. [转]Java中this的意义

    1. this 指的不是成员变量还是方法里的参数值指得是这个类自身 class a{int i = 0;public void aa(){System.out.print(i);}public voi ...

  10. Mac电脑,Andorid studio 配置 Flutter

    1,下载flutter cd ~/Library/ git clone -b dev https://github.com/flutter/flutter.git 2,环境配置: 这里配置用户级别环境 ...