springMVC中参数传值,作用域传值
来源:互联网 发布:找晋中网络教研平台 编辑:程序博客网 时间:2024/05/22 09:39
简单的记录一下mvc中参数传值,和作用域传值
1.简单数据类型传值
传递的参数与实体类的name值一致
直接使用实体类对象获得值
public class User { private int id; private String name ; private String pwd; private int age; }
<form action="loginOne.do" method="post"> <input type="text" name="name" > <input type="password" name="pwd" > <input type="text" name="age" > <input type="submit" value="Login" > </form>
如上所示我们可以用一个实体来获取参数值,这里是注解开发,记住在类名上加入注解@Controller
@RequestMapping("login.do") public String login(User user){ int age = user.getAge(); String name = user.getName(); String pwd = user.getPwd(); System.out.println(user); return null; }
注意的是在传递过程中有可能出现乱码问题,要设置字符集编码,我呢配置了一个过滤器,一劳永逸
<!-- 解决中文乱码问题 这解决了post方式提交乱码问题--> <filter> <filter-name>filter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.传递的参数与实体属性名不一致的时候使用的是@RequestParam注解
有三个属性value:前台页面name属性的值
required:是否必须有参数,默认为true
defaultValue:默认的值是什么
代码:
@RequestMapping("loginOne.do") public String loginOne( @RequestParam(value="tname",required=true) String name, @RequestParam(value="tpwd",defaultValue="6666",required=true) String pwd, @RequestParam(value="tage",required=true) int age ){ System.out.println(name+"\t"+pwd+"\t"+age); return "login";}
前台页面是、:
<form action="loginOne.do" method="post"> <input type="text" name="tname" > <input type="password" name="tpwd" > <input type="text" name="tage" > <input type="submit" value="Login" > </form>
3.数组传值
实体类有一个数组属性例如:
public class User { private int id; private String name ; private String pwd; private int age; private String[] books; }
使用get方法获取值
@RequestMapping("loginOne.do") public String loginOne(User user){ System.out.println(user.getBooks()); return "login"; }
jsp页面
<form action="loginOne.do" method="post"> <input type="text" name="name" > <input type="password" name="pwd" > <input type="text" name="age" > <input type="text" name="adress.name" > <input type="checkbox" name="books" value="C#"> C# <input type="checkbox" name="books" value="PS"> PS <input type="checkbox" name="books" value="JAVA">JAVA <input type="checkbox" name="books" value="PHP">PHP <input type="submit" value="Login" > </form>
4.对象传值
一个类中包含另一个类的属性,我们可以通过方法调用来实现
jsp页面还是上面的jsp,可以看到有一个 name-“adress.name”这样起名字可以直接找到实体的get方法来获取值,在我们开发的时候,起名字是很重要的,名字起对了,我们可以省很多事
@RequestMapping("loginOne.do") public String loginOne(User user){ System.out.println(user.getAdress()); return "login"; }
好的,下面我们说一下作用域传值
1.使用Servlet 四大作用域PageContext,ServletRequest,HttpSession,ServletContext;都可以使用我只示范一个,和我们之前使用的servlet差不多,都是用request获取值,比较返回
/** * 使用request作用域传值 * @param req * @param resp * @return */ @RequestMapping("login") public String req(HttpServletRequest req,HttpServletResponse resp){ String name = req.getParameter("name"); String pwd = req.getParameter("pwd"); System.out.println(name); System.out.println(pwd); if("admin".equals(name)){ req.setAttribute("name", name); return "listAdmin"; }else{ return "false"; } }
2.使用model对象
/** * 利用Model对象作用域传值 * 使用model.addAttribute("name",name); * @param user * @param model * @return */ @RequestMapping("model") public String toModel(User user,Model model){ String name = user.getName(); String pwd = user.getPwd(); if("admin".equals(name)){ model.addAttribute("name",name); return "listAdmin"; }else{ return "false"; } }
3.使用ModelAndView对象
/** * 使用ModelAndView对象传值 * @param user * @return */ @RequestMapping("mandv") public ModelAndView mlv(User user){ ModelAndView mv=new ModelAndView(); String name = user.getName(); String pwd = user.getPwd(); if("admin".equals(name)){ mv.setViewName("listAdmin"); mv.addObject("name",name); }else{ mv.setViewName("false"); } return mv; }
4.使用Map传值
/** * 使用Map传值 * @param user * @return */ @RequestMapping("Map") public String toMap(User user,Map map,HttpServletRequest req){ String name = user.getName(); map.put("name", name); if(name!=null){ req.setAttribute("map", map); return "listAdmin" ; }else{ return "false" ; } }
- springMVC中参数传值,作用域传值
- springMVC中contextLoaderListener作用
- Java-springMVC框架:springMVC取参数值、把值放入作用域方法
- springMVC中参数格式化
- 验证中“参数”作用
- SpringMVC作用域传值
- SpringMVC中HandlerAdapt的作用
- springmvc中initbinder的作用
- SpringMVC中@RequestBody的作用
- springMVC中pojo参数绑定
- springmvc Controller请求中参数
- springMVC中接受的参数
- springmvc接收参数和页面传值
- springMVC传对象参数
- springMVC传对象参数
- springMVC传对象参数
- springMVC传对象参数
- SpringMVC传参数一
- Makefile的实例讲解
- hdu 1213 How Many Tables
- linux运维-网桥的搭建
- IntelliJ IDEA 常用快捷键列表及技巧大全
- mac下启动/停止/重启mysql服务
- springMVC中参数传值,作用域传值
- Spring MVC入门
- eclipse中的Maven插件设置
- MySQL-Proxy 读写分离、同步延时问题解决方案
- Linux服务器中木马(肉鸡)手工清除方法
- kubernetes volume 源码详解
- eclipse中创建Maven工程
- MyBatis面试题
- 杨辉三角(难度:半颗星)