当前位置:网站首页 > R语言数据分析 > 正文

swagger2配置security(swagger2配置不生效)



利用SpringMVC来做一个关于员工信息的CRUD(增删改查),符合Rest风格的。

  • C:Create 创建
  • R:Retrieve 查询
  • U:Update 更新
  • D:Delete 删除

原本是连接数据库保存数据,但是现在使用Map,List保存数据之类的。

1.导包

2.写配置

(1)配置web.xml,写前端控制器,字符过滤器和支持Rest风格的过滤器

(2)编写SpringMVC配置文件,增减context名称空间进行组件扫描,配置视图解析器。

3.增减实体类

restfultoolkktx 不生效_spring

restfultoolkktx 不生效_restfultoolkktx 不生效_02

4.增加Dao类

(1)DepartmentDao :

(2)EmployeeDao :

因为要完成的是Restful风格的增删改查,所以增删改查的地址是:/资源名/资源标识。如下

流程:访问index.jsp页面--->发送请求/emps--->控制器查出所有员工-->放在请求域中-->转发到emplist页面进行展示

1.index.jsp:编写页面链接

2.增加处理器

3.员工列表页面,SpringMVC中没遍历的标签,需要使用jstl标签进行集合遍历,增加jstl标签库jar包。

4.emplist页面显示:

restfultoolkktx 不生效_restfultoolkktx 不生效_03

流程:在emplist页面点击员工添加--->查询所有的部门信息展示在添加页面-->来到员工添加页面(add.jsp)-->输入员工数据-->点击保存-->处理器收到员工保存请求(保存员工)-->保存完成后还是来到列表页面。

1.在emplist上添加链接:

2.增加处理器方法,因为部门信息要回显到页面中,所以要获取部门信息放到隐含模型中:

3.添加页面:

(1)单纯的form表单,取值麻烦

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

跳转到这个添加页面时,会报错,请求域中没有一个command类型的对象。

restfultoolkktx 不生效_java_04

SpringMVC认为,表单数据中的每一项最终是要回显的,path指定的是一个属性,这个属性是从隐含模型(请求域中取出的某个对象中的属性)。请求域中必须有这个对象,拥有这个属性,这个对象就是请求域中的command对象。

解决方法一:在处理方法中,向请求域中添加conmand对象,表单标签会从请求域中获取一个command对象,把这个对象中的每一个属性对应的显示出来。

显示为:

restfultoolkktx 不生效_html_05

解决方法二: 解决方法一回显的是一个员工的值,不需要显示出来这些东西。可以告诉SpringMVC不要去取command值,做了一个modelAttribute指定的值,取对象时用的key就用modelAttribute指的值。

显示为:

restfultoolkktx 不生效_spring_06

4.点击保存,表单标签的处理方式为:

添加处理方法,因为添加完后要显示所有员工,所以使用重定向到员工列表页面。

总结:

Spring的表单标签:

  • 一般情况下,通过GET请求获取表单页面,而通过POST请求提交页面,因此获取表单页面和提交表单页面的URL是相同的。
  • 只要满足该最佳条件的契约,<form:form>标签就无需通过action属性指定表单提交的URL。
  • 可以通过modelAttribute属性指定绑定的模型属性,若没有指定该属性,则默认从request域对象中读取command的表单bean,如果该属性值也不存在,则会发生错误。

SpringMVC提供了多个表单组件标签,如<form:input/>,<form:select/>等,用以绑定表单字段的属性值,共有属性如下:

  • path:表单字段,对应html元素的name属性,支持级联属性。
  • htmlEscape:是否对表单值的HTML特殊字符进行转换,默认值为true。
  • cssClass:表单组件对应的CSS样式类名
  • cssErrorClass:表单组件的数据存在错误时,采取的CSS样式。
  • form:input、form:password、form:hidden、form:textarea:对应 HTML 表单的 text、password、hidden、textarea 标签
  • form:radiobutton:单选框组件标签,当表单 bean 对应的属性值和 value 值相等时,单选框被选中
  • form:checkbox:复选框组件。用于构造单个复选框
  • form:checkboxs:用于构造多个复选框。使用方式同 form:radiobuttons 标签
  • form:select:用于构造下拉框组件。使用方式同 form:radiobuttons 标签
  • form:option:下拉框选项组件标签。使用方式同 form:radiobuttons 标签
  • form:errors:显示表单组件或数据校验所对应的错误。

流程图:点击EDIT-->查出要修改的员工信息放到请求域中(发送/emp/id请求 GET)-->来到修改页面(edit.jsp)进行回显-->输入完成数据,点击修改按钮(/emp/id PUT)--->修改员工信息(ModelAttribute提前查询员工)---->来到列表页面

1.页面链接

2.处理器方法:

3.edit.jsp页面,显示员工信息

页面显示为:

restfultoolkktx 不生效_restfultoolkktx 不生效_07

4.提交表单,修改员工信息

(1)表单的action,要注意是绝对路径

(2)处理器方法:修改员工,我们可以知道的是这个要修改的员工信息被封装成一个Employee对象,但是修改页面中有些信息是没有的,例如员工的id和员工姓名。可以用在页面使用隐藏域来传递id,然后可以写一个ModelAttribute提前查询员工姓名。

注意:

(1)发送修改请求的时候,也可以不需要带id。因为id放在了隐藏域中(请求域中),可以在ModelAttribute中获取到。

(2)一定要注意在提前运行ModelAttribute方法时,判断id是否为null。

流程:发送删除请求(/emp/id DELETE)-->删除员工-->来到列表页面

删除链接:发起请求,无法执行,因为delete请求必须通过post请求转换为delete请求。

解决方法一:

(1)使用form表单

(2)处理器方法:

(3)显示结果:

restfultoolkktx 不生效_spring_08

解决方法二:使用JQuery来转换请求方式。

(1)加入jquery库文件:scripts/jquery-1.9.1.min.js。

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

(2)通过JQuery来转换delete请求

(3)处理器方法不变

(4)流程图解:

restfultoolkktx 不生效_java_09

到此这篇swagger2配置security(swagger2配置不生效)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • xavier名字(xavier名字寓意)2025-02-26 07:54:09
  • resnet模型(resnet模型怎么读)2025-02-26 07:54:09
  • qpainter在控件中画图(qpainter绘图)2025-02-26 07:54:09
  • oracle教程下载(oracle官网下载oracle教程)2025-02-26 07:54:09
  • druid监控页面打不开(druid监控页面嵌入springboot监控)2025-02-26 07:54:09
  • redhat价格(redhat报价)2025-02-26 07:54:09
  • grid布局兼容(grid布局自适应)2025-02-26 07:54:09
  • esp8266天气时钟代码(arduino esp8266天气)2025-02-26 07:54:09
  • linux libxml2安装(linux怎么安装libpthread库)2025-02-26 07:54:09
  • docker run hello-world启动不了(docker run 无法启动)2025-02-26 07:54:09
  • 全屏图片