SpringMVC学习(二)

大纲

1接受的参数为日期类型

2 controller进行数据保存

3 Controller如何进行重定向跳转

4 静态资源的映射

5 Springmvc完成ajax功能。(jquery. $)

6 Springmvc完成ajax功能,controller类返回的数据类型为String且为汉字时出现乱码

1 接收的参数为日期类型时

 1.1新建动态web工程

 1.2导入springmvc相关jar包

 

 1.3配置web.xml文件(已经安装了插件,使用插件加载后再修改相关参数,快捷键:Alt+/)

*修改如下地方

 

 

 1.4创建Spring Bean Configuration File文件,配置springmvc配置文件(创建的xml文件名需要与web.xml中classpath后的文件名对照)

*使用插件引入jar包路径

 *添加包扫描、开启驱动、视图解析器

 

1.5在WEB-INF目录下新建view文件夹,添加index.jsp文件

 *注意:WEB-INF下的资源,无法通过浏览器直接访问也不能通过重定向访问,只能通过请求转发访问

1.6以User为例在controller包下,创建UserController类,添加相关方法,该方法接收的参数为单参,返回类型为String,参数为Date类型,或者该方法接收的参数为User实体类

way1:使用@InitBinder对日期类型的数据进行处理

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

 

*接收的参数为实体类

 way2:封装到实体类,在实体类中使用@DateTimeFormat(pattern="yyyy-MM-dd")

 

 1.7在WebContent目录下添加login.jsp文件

注意:input标签中name属性的值,要与controller方法中的参数一样,

controller进行数据保存

 2.1保存的作用域为request的四种方法

1)使用ModelAndView,该方法的返回类型必须是ModelAndView

 *在index.jsp中使用${requestScope.name}获取保存的数据

2)使用Model,该方法的返回值是String类型,参数类型为Model

  *在index.jsp中使用${requestScope.name}获取保存的数据

3)使用Map,方法的返回值是Sting类型,参数类型为Map<泛型>

  *在index.jsp中使用${requestScope.name}获取保存的数据

4)使用原始的HttpServletRequest对象保存

2.2保存的作用域为session的两种方法

1)使用原始的HttpSession保存,返回类型为String,参数类型为HttpSession

  *在index.jsp中使用${sessionScope.name}获取保存的数据

2)使用注解@SessionAttributes(name={key1,key2}),参数类型为HttpSession

 

*在index.jsp中使用 ${applicationScope.name} 获取保存的数据

Controller如何进行重定向跳转

 *使用redirect进行重定向跳转

静态资源的映射

 

 

*静态资源可以正常的显示。

 

 *若DispatchServlet处理的请求的地址为/,那么它会处理静态资源,运行时会报错404,故需要在springmvc的配置文件中添加,释放静态资源的语句

<mvc:default-servlet-handler/>   :表示不处理静态资源

Springmvc完成ajax功能。(jquery. $)

5.0导入jackson的三个jar包,这这三个jar包与springmvc联合使用

 5.1在WebContent目录下新建js目录,再导入jar包(jquery.min.js)

5.2在WebContent目录下新建ajax.jsp文件,在head标签内添加script标签通过src属性引入jquery.min.js

 

 5.3在controller包下新建AjaxController类,添加相关方法

*注意:这里需要通过@ResponseBody,将Java对象转化成json对象,且将静态资源释放后,return的数据才可以在页面上使用

1)返回类型为String类型

*在ajax.jsp页面使用jQuery,通过alert弹出ajax1返回的值

注意:jQuery中的name与ajax1方法的参数一样

 

 2)返回类型为User实体类对象

*在ajax.jsp页面使用jQuery,通过alert弹出ajax2,返回的值

 3)返回类型为集合类型

 

*在ajax.jsp页面使用jQuery,通过alert弹出ajax3,返回的

 

6 Springmvc完成ajax功能,controller类返回的数据类型为String且为汉字时出现乱码

*原因:返回String类型时源码中的默认编码为ISO-8859-1

 

 

解决方案:在开启驱动时,设置编码,将默认值该为utf-8

 

 

posted @ 2019-09-04 01:11  静默陈  阅读(159)  评论(0编辑  收藏  举报