工作中遇到了太多太多的表单提交问题,曾经学过一个HTML的表单提交给
另外一个HTML页面,对于后台怎么获取有点想不起来了。
今天便做了几个实验,提交订单到后台,来掩饰后台如何接受表单内容;
实验 一:
<form id="myform" action="/login/abc" method="post">
<p>联系人:<input type="text" name="name" style="width: 300px" /></p>
<p>电话:<input type="text" name="tel" style="width: 300px" /></p>
<p><input type="submit" value="提交" /></p>
</form>
后台是如何接收的呢;
@Controller
@RequestMapping(value = "/login")
public class LoginController {
@RequestMapping(value = "/abc")
@ResponseBody
public void login(String name){
System.out.println(name);
System.out.println(tel);
}
输入:周杰伦
123456
点击提交按钮:
输出:周杰伦
123456
没有问题。
实验二:
<form id="myform" action="/login/abc" method="post">
<p>联系人:<input type="text" name="name" style="width: 300px" /></p>
<p>电话:<input type="text" name="tel" style="width: 300px" /></p>
<p><input type="submit" value="提交" /></p>
</form>
后台现将name,和tel属性封装成一个类person
public class Person { private String name;
private String tel;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
} }
后台代码
@Controller
@RequestMapping(value = "/login")
public class LoginController {
@RequestMapping(value = "/abc")
@ResponseBody
public void login(Person person){
System.out.println(person.getName());
System.out.println(person.getTel());
}
依然成功;
实验三 表单的ajax提交;(重点)
1.用其他的按钮代替提交按钮。
<body>
<form id="my" action="/login/abc" method="post">
<p>联系人:<input type="text" name="name" style="width: 300px" /></p>
<p>电话:<input type="text" name="tel" style="width: 300px" /></p>
<p><input type="submit" value="提交" /></p>
</form>
<input type="button" onclick="ck();" value="登录"/>
</body>
我们在form标签的外面再加一个按钮(登录);实现点击登录按钮也提交。这时候需要在登录按钮添加方法,方法中写上
$("#my").submit();
<script th:inline="javascript">
function ck(){ $("#my").submit()
}
</script>
那么如何实现ajax提交呢。
function ck(){ $.ajax({
url:"/login/abc",
type:"post",
dataType:"json",
data:$("#my").serializeArray(),
success:function(person){
console.log(person.name);
}
}) }
重点重点重点:
data:$("#my").serializeArray(),