前后端数据的传递方法
1.首先是前端产生的数据通过json获取,然后利用Ajax传递给后端。需要添加jQuery库,因为jQuery库里封装了json数据的操作。
如下图可以设置传递方式等属性。
$.ajax({
type:'POST',
data:a,//json
contentType = 'application/json',
dataType:'json',
url:'user/saveJsonUser.do',
success:function(data){
alert("发送成功");
},
error:function(e){
alert("发送失败");
}
2.利用form表单进行传递:form表单中的有一个action属性,而且form表单可以在向后台传递之前进行数据的检验。form表单有一个onsubmit方法,可以调用js对数据进行检验,比如输入是否合法,如果onsubmit的返回值为true的时候再向后端提交数据,否则直接在前端返回错误。向后端提交数据可以利用action,action后面接的就是后台处理的url
<form action="${pageContext.request.contextPath}/login.action" method="post">
用户名<input type="text" name="user.name"><br>
密码<input type="password" name="user.password"><br>
<input type="submit" value="登录">
</form>
3.通过dom获取标签,触发标签的submit方法直接提交数据到后台
那么后端是如何接收数据的呢?此处以action为例
后端接收数据可以用controller或者servlet
action提交后,后台接收数据的方法
1.request对象获取请求参数
通过ServletActionContext.getRequest()取得Request实例后直接获取参数。
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
public String login() {
//通过request对象获取请求参数
HttpServletRequest request = ServletActionContext.getRequest();
String name = request.getParameter("name");
String password = request.getParameter("password");
//打印属性
System.out.println(name);
System.out.println(password);
return NONE;
}
}
2.通过属性的set注入获取请求参数
。。。。。。。待补充