JavaWeb-20-SpringMVC的表单标签以及引入静态资源

目录

1:页面操作

2:用了表单标签的页面可能会报这个错误;请求域中没有一个command类型的对象;来到页面之前一定要给请求域中放这个对象;

​ 3:后端操作

4:springmvc引入静态资源

1:当在页面使用静态资源时回报异常

2:原因是因为springmvc在web.xml中设置了拦截除jsp外所有的请求

3:解决办法:配置

4:关于作用


通过 SpringMVC的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显

1:页面操作

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
//必须指定导入form
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>




Insert title here


 

 
         LastName : 

Email :

<% Map map = new HashMap(); map.put("1", "Male"); map.put("0","Female"); request.setAttribute("genders", map); %> Gender :


DeptName :



2:用了表单标签的页面可能会报这个错误;请求域中没有一个command类型的对象;来到页面之前一定要给请求域中放这个对象;

 3:后端操作

@RequestMapping(value="/empInput",method=RequestMethod.GET)
public String empInput(Map map){
    map.put("deptList", departmentDao.getDepartments());
    //解决错误:java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute
    Employee employee = new Employee();
    //map.put("command", employee);
    //	可以通过 modelAttribute 属性指定绑定的模型属性,若没有指定该属性,则默认从 request 域对象中读取 command 的表单 bean,如果该属性值也不存在,则会发生错误。
    map.put("employee", employee);
    return "add";
}

4:springmvc引入静态资源

1:当在页面使用静态资源时回报异常

JavaWeb-20-SpringMVC的表单标签以及引入静态资源_第1张图片

2:原因是因为springmvc在web.xml中设置了拦截除jsp外所有的请求

3:解决办法:配置

  • 在dispatcher-servlet.xml中配置告诉springmvc自己能映射的自己管理;不能映射的交给tomcat
  • 但是当设置了后其他的动态请求又不好使了,那么在此设置开启springmvc管理动态资源

4:关于作用

将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler

它会对进入 DispatcherServlet 的请求进行筛查,如果发现是没有经过映射的请求,

就将该请求交由 WEB 应用服务器默认的 Servlet 处理,如果不是静态资源的请求,才由 DispatcherServlet 继续处理

一般 WEB 应用服务器默认的 Servlet 的名称都是 default。

若所使用的 WEB 服务器的默认 Servlet 名称不是 default,则需要通过 default-servlet-name 属性显式指定 

参考:CATALINA_HOME/config/web.xml

   

        default

        org.apache.catalina.servlets.DefaultServlet

       

            debug

            0

       

       

            listings

            false

       

        1

   

该标签属性default-servlet-name默认值是"default",可以省略。        

        

 -->

default-servlet-name="default"/>       

你可能感兴趣的:(spring)