• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

RESTRUL_CRUD_删除操作&处理静态资源

1 删除实验代码

  • 页面链接
<td><a href=”/empDelete/${emp.id }”>Delete</a></td>
  • 控制器方法
@RequestMapping(value=”/empDelete/{id}” ,method=RequestMethod.DELETE)

public String empDelete(@PathVariable(“id”) Integer id){

employeeDao.delete(id);

return “redirect:/empList”;

}

2 HiddenHttpMethodFilter过滤器

发起请求,无法执行,因为delete请求必须通过post请求转换为delete请求,借助:HiddenHttpMethodFilter过滤器

3 需要使用jQuery来转换请求方式

  • 加入jQuery库文件

/scripts/jquery-1.9.1.min.js

  • jQuery库文件不起作用
警告: No mapping found for HTTP request with URI [/SpringMVC_03_RESTFul_CRUD/scripts/jquery-1.9.1.min.js] in DispatcherServlet with name ‘springDispatcherServlet’
java培训
  • 解决办法,SpringMVC 处理静态资源
    • 为什么会有这样的问题:

优雅的 REST 风格的资源URL 不希望带 .html 或 .do 等后缀,若将 DispatcherServlet 请求映射配置为 /, 则 Spring MVC 将捕获 WEB 容器的所有请求, 包括静态资源的请求, SpringMVC 会将他们当成一个普通请求处理, 因找不到对应处理器将导致错误。

②解决: 在 SpringMVC 的配置文件中配置 <mvc:default-servlet-handler/>

  • 配置后,原来的请求又不好使了

需要配置<mvc:annotation-driven />

4 关于<mvc:default-servlet-handler/>作用

<!–

<mvc:default-servlet-handler/> 将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler

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

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

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

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

参考:CATALINA_HOME/config/web.xml

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

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

<mvc:default-servlet-handler/>

–>

<mvc:default-servlet-handler default-servlet-name=”default”/>

5 通过jQuery转换为DELETE请求

<td><a class=”delete” href=”empDelete/${emp.id }”>Delete</a></td>

 

<form action=”” method=”post”>

<input type=”hidden” name=”_method” value=”DELETE”/>

</form>

 

<script type=”text/javascript” src=”scripts/jquery-1.9.1.min.js”></script>

<script type=”text/javascript”>

$(function(){

$(“.delete”).click(function(){

var href = $(this).attr(“href”);

$(“form”).attr(“action”,href).submit();

return false ;

});

});

</script>

6 删除操作流程图解

java培训

想要了解跟多关于java培训知识欢迎关注小编!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注