method 1 >通过form表单传值:
Step1 :创建form表单(index.jsp)
<form action="user/test" method="POST">
姓名: <input type="text" name="name" /><br />
性别: <input type="text" name="sex" /><br />
年龄:<input type="text" name="age" /><br />
<input type="submit" value="提交" />
</form>
Step2 :创建POJO(bean)(POJO.java)
*值得注意的是在这里定义的变量名应当与input中设置的name值相等
String name,sex;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Step3 :在Controller类中定义处理方法(Controllers.java)
@Controller
@RequestMapping("/user")
public class Controllers(){
@RequestMapping(value = "test" , method = RequestMethod.POST)
public String test(ModelMap mo,POJO bean){
String name = bean.getName();//在这里bean将不需要去set值,它将自动获取值。只需要去使用它就可以了
String sex = bean.getSex();
int age = bean.getAge();
mo.addAttribute("name",name);
mo.addAttribute("sex",sex);
mo.addAttribute("age",age);
return "../Message";//返回到Message页面
}
}
Step4 :在Message页面获取值(Message.jsp)
<h1>Message</h1>
姓名:<a>${name}</a>
性别:<a>${sex}</a>
年龄:<a>${age}</a>
method 2>通过a标签传值:
2-1>带参数的超链接形式:
Step1 :定义好a标签以及URL和需要传的值(以键值对方式)
<a href="user / alink1 ? name = ' World ' ">click me<a>//在程序的URL中是不存在空格的,目的是为了能够看得清楚。
Step2 :在Controller类中定义方法处理业务(Controllers.java)
@Controller
@RequestMapping("/user")
public class Controllers(){
@RequestMapping("/alink1")
public String test(@RequestParam String name,ModelMap mo){//使用@RequestParam注解将传输的值赋予给name变量
mo.addAttribute("name",name);
return "../Name";//返回到Name页面
}
}
Step3 :在Name页面获取值(Name.jsp)
<h1>${name}</h1>
2-2>REST风格方式
Step1:定义好a标签以及URL和需要传的值
<a href="user / alink2 / 'World' "></a>
//与第一种方式相比:以“/”替换了问号,不是以键值对形式。
Step2 :在Controller类中定义方法处理业务(Controllers.java)
@Controller
@RequestMapping("/user")
public class Controllers(){
@RequestMapping("/alink1/{name}")
public String test(@PathVariable("name") String name,ModelMap mo){
mo.addAttribute("name",name);
return "../Name";//返回到Name页面
}
}
Step3 :在Name.jsp页面获取值
<h1>${name}</h1>
method 3>通过AJAX传值
Step1:编写AJAX(index.jsp)
$.ajax({
type:"post",
url:"user/ajax",
data:{
speak:"Holler World!"
},
success:function(data){
window.location.href="Success.jsp?data = '"+data+"'";//将controller类返回的值传输到Success.jsp页面
}
});
Sep2 :在Controller类中定义方法处理业务(Controllers.java)
@Controller
@RequestMapping("/user")
public class Controllers(){
@RequestMapping(value = "/ajax" , method = RequestMethod.POST)
public String ajax(HttpServletRequest req,HttpServletResponse res,ModelMap mod){
String speak = req.getParameter("speak");
try{
PrintWriter print = res.getWriter();
print.print(speak);
print.close();
}catch{}
return "../indx";//返回到index页面
}
}
Step 3 : 返回到index页面后ajax的success函数将跳转到Success.jsp,只需要在该页面获取这个传过来的值就ok(Success.jsp)
<%
String data = request.getParameter("data");//获取AJAX传输过来的值
%>
<h1><%=data %></h1>//==>Holler World!