六、springmvc的注解
xml的配置→注解
1、新建一个配置文件还是在config下
新建springAnnotation-servlet.xml
web.xml 修改初始化为<param-value>classpath*:config/springAnnotation-servlet.xml</param-value>
springAnnotation-servlet.xml 加入一个扫描包。扫描包下的所有类
继续添加。上面为注解扫描包,下面为开启注解。
spring webmvc下的目录mvc下的annotation下的两个类。注解
2、 src下的java类
package com.tgb.web.controller.annotation;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class UserController { @RequestMapping(value="/user/addUser",method=RequestMethod.GET) public ModelAndView addUser(){ String result="this is the addUser function"; return new ModelAndView("/jquery","result",result); } @RequestMapping(value="/user/delUser",method=RequestMethod.GET) public ModelAndView delUser(){ String result ="this is delUser------"; return new ModelAndView("/jquery","result",result); } @RequestMapping(value="/user/toUser",method=RequestMethod.GET) public ModelAndView toUser(){ return new ModelAndView("/jquery"); }}
3、jquery里的表单里面的get方法要对应上面的method=RequestMethod.GET 。如果表单修改为post请求,就会请求不到资源。
http://localhost:8080/springMVC1/user/toUser toUser→jquery界面→点击按钮→表单到/springMVC1/user/addUser 这个界面,返回出一行字符串
七、sprigmvc注解优化
1、配置优化
修改为
2、请求类型优化
修改成@RequestMapping(value="/user2")
3、继续优化
修改成@RequestMapping("/user2")
4、修改ModeAndView。把ModeAndView修改成String
5、传递参数
方法修改为public String addUser(HttpServletRequest request)
request.setAttribute("result", result); 这样传递数据
八、springmvc参数传递
1、新建一个DataController
package com.tgb.web.controller.annotation;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/user/data")public class DataController { @RequestMapping("/addUser") public String addUser(String userName,String age,HttpServletRequest request){ String result ="this is addUser------优化版"; request.setAttribute("userName", userName); request.setAttribute("age", age); return "/userManager"; } @RequestMapping("/delUser") public String delUser(HttpServletRequest request){ String result ="this is delUser------优化版"; request.setAttribute("result", result); return "/jquery"; } @RequestMapping("/toUser") public String toUser(HttpServletRequest request){ return "/addUser"; }}
见源码。
有了以前的注解开启。
→返回到一个addUser.jsp界面,然后表单到controller里面 保存数据,传递数据到userManager.jsp
3、表单中姓名乱码。
addUser.jsp里面为charset=UTF-8编码。
提交到服务器,修改tomcat的config下的
修改为
GET方法请求,然后修改tomct里面的编码也为UTF-8.所以姓名也不会乱码了
POST方法,依然乱码
4、在web.xml修改一下拦截
添加如下【其中filter就是spring web jar包下的web下的filter下的CharacterEncodingFilter】
encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /*