springMVC参数设置

接收的参数为日期类型

在springmvc的controller控制层接收日期参数时,如果不加以设置,服务器开启后,进入不了页面中,会报错。这个错误就是日期在页面传入到springmvc的controller中的时候没有转化。就会引起错误

解决的方法是,在controller类中加一个方法,如下:

@InitBinder
    public void initBinder(ServletRequestDataBinder binder){
        //只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型
        binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
    }

这里必须要有注解,才能起到转化的作用。

controller进行数据的保存

在springmvc的controller中进行数据保存跟以前的servlet中保存数据是同一个原理,把数据保存到request、session中,当数据保存到request中的时候,有下面的方法:

写一个方法返回类型是ModelAndView,那么这种保存方式必须在方法里面重新new一个新的ModelAndView的类,然后调用里面的方法,实现保存和跳转的作用,如图:

@Controller
public class MyController1 {
    @RequestMapping("/list.do")
    public ModelAndView list() {
        Users u=new Users();
        u.setName("张三");
        u.setAge(16);
        u.setSex("男");
        u.setPhone(12332313);
        ModelAndView mv=new ModelAndView();
        mv.setViewName("login");
        mv.addObject("user", u);
        return mv;
    }
}

我这里在项目里创建一个Users的实体类,然后给实体类赋值,将数据赋值给以这个实体类为数据类型的一个对象里,然后把这个对象保存到ModelAndView中,这个是以request方式保存的

mv.addObject("user", u);是以ModelAndView的方式添加对象的或者添加字符串的还有集合。
mv.setViewName("login");这个方法是页面的跳转到login这个页面中,将对象保存到里面然后随着请求转发将数据发送给页面中,从而页面就可以得到相应的数据了以Model的方法保存,这个方法的返回值类型还是字符串类型的。
@RequestMapping("b")
public String Model(Model model){
    UserBean bean = new UserBean();
    bean.setName("admin");
    bean.setPwd("admin");
    model.addAttribute("admin", bean);
    return "login";

Model也是一种request的存储方式,在同一个请求中被调用里面的参数,

 model.addAttribute("admin", bean);Model中添加的方法是addAttribute(),括号里面可以是文本,对象,集合。还有使用Map的方法保存数据,返回的数据类型还是字符串类型
@RequestMapping("a")
public String Map(Map<String, Object> Map){
    UserBean bean = new UserBean();
    bean.setName("刘备");
    bean.setPwd("张飞");
    Map.put("admin", bean);
    return "login";

同上,唯一不同的就是,它添加数据的是put()的方法,它是map集合中特有的存放数据的方法

还有最原始的存储方式就是用request,那就得用HttpServletRequest 来调用request了,本人觉得还是最原始的方法用的舒服

@RequestMapping("a")
public String request(HttpServletRequest request){
    UserBean bean = new UserBean();
    bean.setName("张三");
    bean.setPwd("123");
    request.setAttribute("b", bean);
    return "login";

session的保存方式:

@RequestMapping("/a")
public String session(HttpSession session){
    UserBean bean = new UserBean();
    bean.setName("曹操");
    bean.setPwd("周瑜");
    session.setAttribute("b", bean);
    return "login";
}

request和session在controller中和在servlet中使用的方法都是一样的,之前的讲的除了session是保存在session中的,其余的都是保存在request中的,

如果想使用上面的几种方法保存到session中那么就使用注解了 ,在类外使用@SessionAttributes(names={key1,key2})这个方法。

controller中进行重定向调转

请求转发和重定向跳转的区别,1.第一个差别点,就是重定向是两次请求,转发是一次请求,因此转发的速度要快于重定向。2.第二个差别点也很明显,重定向之后地址栏上的地址会发生变化,变化成第二次请求的地址,转发之后地址栏上的地址不会变化,还是第一次请求的地址,那么在springmvc的controller中想用重定向跳转页面,只需要在要跳转的页面前面加上redirect就ok了。

  方式一:使用ModelAndView
        return new ModelAndView("redirect:/login");
        这样可以重定向到toList这个方法
        方式二:返回String
         return "redirect:/ login ";

静态资源的映射

从上面的图片可以看出web.xml的拦截条件是*.do 那么静态资源就不会拦截,我们想让静态资源被拦截,就要改成:

写成/是对所有的文件都进行了拦截,因为在controller中找不到静态资源的相应的servlet,所以图片什么效果就不会显示出来的,这个时候就需要在springmvc的配置文件中释放资源了

用springmvc完成ajax功能

创建一个jsp文件,里面引入jquery文件,然后里面写入ajax代码

ajax的实现有三种方式$.get(url,data,callback,type);其中url:服务器的路劲    data:请求参数   callback:回调函数  type: 响应数据的类型。(html,json)

$.post()和get一样   $.ajax({url:(服务器的路径),data:(请求参数),type:(响应的数据类型),success:(回调函数),Error:(错误),Async:(同步),datatype:(请求数据类型)})

在以前学的servlet中响应文本的时候直接Out.print()响应过去,当响应的是对象的时候需要借助gson jar包。把Java对象转化为json对象,

但在controller中需要加入jackson的jar包,在响应的方法上加上@ResponseBody这个注解,就能把Java对象转化为json对象了

方法的返回值可以是对象的集合,字符串。

jsp页面

ajax操作,当加载页面的时候,从controller中响应数据到页面上,然后弹出来,测试一下。

当页面控制器响应一个中文的话,页面接收到会发现是乱码,解决的方法是:

@RequestMapping(value="Ajax",produces = "text/html;charset=UTF-8" )
    @ResponseBody
    public String a(String name) {
        System.out.println(name);
        return "张三";
    }
在括号里面加上:produces = "text/html;charset=UTF-8",这些代码就解决了,还有就是在springmvc的配置文件中添加标签来修改源代码来从新设置响应的编码。
 

原文地址:https://www.cnblogs.com/lw97-1014/p/11456292.html

时间: 2024-08-30 16:01:57

springMVC参数设置的相关文章

SpringMVC中@RequestMapping参数设置

URL路径由value决定,eg:value="/hello". method参数:RequestMethod.POST,RequestMethod.GET请求方法,比如GET.POST 除此之外,还有: param:参数设置 @RequestMapping还支持ANT风格的通配符: @RequestMapping(value="/?/world") 需要类似于http://localhost:8080/SpringHelloWorld/hello/4/world这

阿里云RDS-MYSQL数据库参数设置,K哥

2016.9.2 最近被阿里云的数据库要搞疯掉了 自打阿里云抽风,非要取消myisam引擎,都换成innodb 没事总是主备切换,也没有错误日志 一问客服就是物理机波动,擦,波动是什么???????? 服务器自己跳舞了吗 看了看参数设置,很多都不知道 这两天有时间自己搜索整理了下 发给大家,有需要的看看 我的服务器应用主要是WEB网站服务 有一些不懂的地方或者不对的地方,还请大牛不吝赐教! 回复在评论中就可以了,thank you 我是K哥 auto_increment_offset表示自增长字

Oracle shared_pool_reserved_size参数设置说明

进入SQLPLUS,查询shared_pool,往往看到结果如下: SQL> show parameter shared_pool NAME                                    TYPE              VALUE------------------------------------ ----------- ------------------------------shared_pool_reserved_size           big in

Socket中的异常和参数设置

1.常见异常 1.java.net.SocketTimeoutException . 这个异 常比较常见,socket 超时.一般有 2 个地方会抛出这个,一个是 connect 的 时 候 , 这 个 超 时 参 数 由connect(SocketAddress endpoint,int timeout) 中的后者来决定,还有就是 setSoTimeout(int timeout),这个是设定读取的超时时间.它们设置成 0 均表示无限大. 2.java.net.BindException:Ad

基于V4L2 MFC 视频编解码 H264参数设置

上篇博文硬件视频编码,在默认参数设置后,编码1000帧640x480 H264文件大小为180m左右,非常大,必须设置参数 测试发现再使能EnableMBRateControl后,编码数据才开始大幅缩小: 这里先将54个控制参数全部初始化 -1,在这54个参数中,包含H264,H263和MPEG视频格式的设置,对每个视频格式仅仅选择对应他的参数即可.这里仅仅测试H264格式 所有控制参数如下: struct { int num; int id; char *name; int value; }

C3p0的参数设置

C3p0的参数设置:ComboPooledDataSource和BasicDataSource一样提供了一个用于关闭数据源的close()方法,这样我们就可以保证Spring容器关闭时数据源能够成功释放. C3P0拥有比DBCP更丰富的配置属性,通过这些属性,可以对数据源进行各种有效的控制: acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目: acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数,默认为30: acqu

调用enqueue执行异步请求有一个参数设置回调。

前面的内容介绍了OkHttp,本章就来教大家okhttp的基本使用,学了这些基本东西之后,大家有其他的需求可以自行扩展.以下的所有请求都是异步请求服务器,在真实的企业开发中,基本都是异步. 首先创建一个request对象,通过request设置请求url,通过这个类还可以设置更多的请求信息.然后通过Request去构造一个Call对象. 调用enqueue执行异步请求,有一个参数设置回调.请求成功或者失败会调用Callback接口的onResponse跟onFailure方法,因为这是异步请求,

SpringMvc参数绑定出现乱码解决方法

在SpringMvc参数绑定过程中出现乱码的解决方法 1.post参数乱码的解决方法 在web.xml中添加过滤器 <!-- 过滤器 处理post乱码 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class

Hibernate 参数设置一览表

Hibernate 参数设置一览表 属性名 用途 hibernate.dialect 一个Hibernate Dialect类名允许Hibernate针对特定的关系数据库生成优化的SQL. 取值 full.classname.of.Dialect hibernate.show_sql 输出所有SQL语句到控制台. 有一个另外的选择是把org.hibernate.SQL这个log category设为debug. eg. true | false hibernate.format_sql 在log