访问静态资源及处理AJAX请求

骑猪看日落 2024-04-01 10:17 166阅读 0赞

如何访问静态资源
1.在配置文件中设置

springmvc.xml文件中加入

  1. <mvc:annotation-driven></mvc:annotation-driven>
  2. <!--**配置解释:** 将静态资源(图片,css,js,html)放入了webApp/static文件夹下! 直接访问DispatcherServlet会拦截出现404问题!-->
  3. <!--location元素表示webapp目录下的static包下的所有文件;-->
  4. <!--mapping元素表示将 location对应文件加下的资源对应到 /static路径下!-->
  5. <!--该配置的作用是:DispatcherServlet不会拦截以/static开头的所有请求路径,并当作静态资源-->
  6. <mvc:resources mapping="/static/**" location="/static/" ></mvc:resources>

静态资源是放在webapp/static/下面

访问

  1. <img src="static/images/1.jpg" width="100" height="100" />

八. 怎么处理ajax请求的数据
@ResponseBody 注解

设置@ResponseBody 注解 返回的是内容 而不是转发页面

1.返回的是一个值

  1. @RequestMapping("/checkUname")
  2. @ResponseBody //注解 响应内容 不转发页面 直接返回内容
  3. public String checkUname(String uname)
  4. {
  5. if(uname.equals("zhangsan"))
  6. return "not ok";
  7. else
  8. return "ok";
  9. }

测试案例

reg.jsp

  1. <script src="static/js/jquery1.11.3.min.js"></script>
  2. <script src="static/js/reg.js"></script>
  3. 用户名:<input type="text" name="uname" id="uname" /><span id="s1"></span>

AjaxController.java

  1. @Controller
  2. @RequestMapping("/ajax")
  3. public class AjaxController {
  4. @RequestMapping("/checkUname")
  5. @ResponseBody //注解 响应内容 不转发页面 直接返回内容
  6. public String checkUname(String uname)
  7. {
  8. if(uname.equals("zhangsan"))
  9. return "not ok";
  10. else
  11. return "ok";
  12. }
  13. }

reg.js

  1. $(function(){
  2. $("#uname").blur(function(){
  3. //1.获得输入的用户名
  4. var uname=$(this).val();
  5. //2.通过ajax将用户名传到服务器判断是否存在 并将结果返回
  6. $.get("ajax/checkUname?uname="+uname,function(msg){
  7. $("#s1").html(msg);
  8. })
  9. /* $.ajax({
  10. "type":"get",
  11. "url":"",
  12. "data":"uname="+uname,
  13. "success":function(msg){
  14. }
  15. })*/
  16. })
  17. })

2.需要返回多个值 则需要将其转换为json字符串
方式1: 用springmvc支持的 jar包 ,让前端控制器帮你转换为json 字符串
2.1 导入jar包

支持:

jackson : jackson-databind/jackson-annotations/jack-core

gson: gson

**注意: ** jackson需要三个jar包!如果使用maven引入jackson-databind会连带引入 core和annotations。

如果非maven项目,必须加入三个jar包!

  1. <dependency>
  2. <groupId>com.google.code.gson</groupId>
  3. <artifactId>gson</artifactId>
  4. <version>2.2.4</version>
  5. </dependency>

2.2 添加配置

springmvc.xml加入

  1. <mvc:annotation-driven></mvc:annotation-driven>

2.3 在控制器使用

  1. @Controller
  2. @RequestMapping("/ajax")
  3. public class AjaxController {
  4. //会将list转换为json字符串
  5. @RequestMapping("/selectUserList")
  6. @ResponseBody
  7. public List<User> selectUserList()
  8. {
  9. List<User> userList=new ArrayList<User>();
  10. userList.add(new User("zhangsan1","123",23,new Address("湖北","武汉","汉口大道100号")));
  11. userList.add(new User("zhangsan2","123",23,new Address("湖北","武汉","汉口大道100号")));
  12. userList.add(new User("zhangsan3","123",23,new Address("湖北","武汉","汉口大道100号")));
  13. return userList; //直接返回list 不用返回json字符串
  14. }
  15. }

2.4 在js中接收

  1. $("#span1").mouseover(function(){
  2. $.getJSON("ajax/selectUserList",function(jsonarr){
  3. $("#userList").empty();
  4. $.each(jsonarr,function(k,v){
  5. $("#userList").append("<li>"+v.uname+"</li>");
  6. })
  7. })
  8. })

方式2: 用fastjson ,自己转换为json字符串
2.1 导入jar包

  1. <!-- json依赖 -->
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>fastjson</artifactId>
  5. <version>1.2.47</version>
  6. </dependency>

2.2 添加配置

springmvc.xml加入

  1. <mvc:annotation-driven></mvc:annotation-driven>

2.3 在控制器使用

  1. @Controller
  2. @RequestMapping("/ajax")
  3. public class AjaxController {
  4. //会将list转换为json字符串
  5. @RequestMapping("/selectUserList")
  6. @ResponseBody
  7. public String selectUserList()
  8. {
  9. List<User> userList=new ArrayList<User>();
  10. userList.add(new User("zhangsan1","123",23,new Address("湖北","武汉","汉口大道100号")));
  11. userList.add(new User("zhangsan2","123",23,new Address("湖北","武汉","汉口大道100号")));
  12. userList.add(new User("zhangsan3","123",23,new Address("湖北","武汉","汉口大道100号")));
  13. return JSON.toJSONString(userList); //返回json字符串
  14. }
  15. }

2.4 js接收:

  1. $("#span1").mouseover(function(){
  2. $.getJSON("ajax/selectUserList",function(jsonarr){
  3. $("#userList").empty();
  4. $.each(jsonarr,function(k,v){
  5. $("#userList").append("<li>"+v.uname+"</li>");
  6. })
  7. })
  8. })

发表评论

表情:
评论列表 (有 0 条评论,166人围观)

还没有评论,来说两句吧...

相关阅读