@Controller
//下面的注解@RequestMapping相当于action中的namespace
@RequestMapping("/")
public class MyController implements ServletContextAware{
//注意让类实现ServletContextAware接口,就可以直接获取application对象
private ServletContext application;
//测试从jsp页面能否进入到controller中的method1方法中
@RequestMapping(value="/method1")
public String method1(){
System.out.println("****method1*****");
return "result.jsp";
}
//使用RequestParam接收从jsp页面传来的值
@RequestMapping(value="/method2")
public String method2(@RequestParam("uname") String name,@RequestParam("age") int age){
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
return "result.jsp";
}
//注意:在注解中要明确jsp页面查找的方法名,在方法内可以传对象参数,也可以传请求参数
//使用requestParameter方式接收jsp页面传来的值
@RequestMapping(value="/method3")
public String method3(HttpServletRequest request){
System.out.println("姓名:"+request.getParameter("uname"));
System.out.println("年龄:"+request.getParameter("age"));
System.out.println("年龄:"+Integer.parseInt(request.getParameter("age").trim()));
return "result.jsp";
}
//下面注解中,可以指明方法的提交方式
//使用对象方式接收从jsp页面传来的值,不过需要创建实体类,提供和jsp页面name相同的成员变量,并提供get和set方法
@RequestMapping(value="method4",method=RequestMethod.POST)
public String method4(User user){
System.out.println("姓名:"+user.getName());
System.out.println("年龄:"+user.getAge());
return "result.jsp";
}
//可以使用对象接收从jsp页面传来的值,并使用request或session或application对象保存值,把值再传到jsp页面,用el表达式进行接收
@RequestMapping(value="method5" ,method=RequestMethod.POST)
public String method5(User user,HttpServletRequest request,HttpSession session){
System.out.println("姓名:"+user.getName());
System.out.println("年龄:"+user.getAge());
request.setAttribute("rs", "来自request对象中的"+user.getName());
session.setAttribute("ss", "来自session对象中的"+user.getName());
application.setAttribute("as", "来自application对象中的"+user.getName());
return "result.jsp";
}
//测试转发,注意返回值默认的是转发
@RequestMapping(value="/method6")
public String method6(){
System.out.println("****method6*************");
return "forward:method1";
}
//测试重定向,在返回值时,使用redirect:method指定重定向后的跳转路径或进入的方法
@RequestMapping(value="/method7")
public String method7(){
System.out.println("******method7*********");
return "redirect:method1";
}
//本类实现ServletContextAware接口中的方法
@Override
public void setServletContext(ServletContext application) {
this.application=application;
}
}