做全景效果图的网站wordpress适应ie6

news/2025/10/2 10:17:09/文章来源:
做全景效果图的网站,wordpress适应ie6,厦门北京网站建设公司,教做面食的网站《“爱读书”--给你讲技术》#xff0c;我来看书#xff0c;你来进步#xff0c;让我们开始吧#xff01;本书简介书名为《轻量级JavaEE企业应用实战》#xff0c;是本人在学习JavaEE框架的时候阅读的第一本书#xff0c;本书对于框架及相关基础知识讲述的比较详细和浅显…《“爱读书”--给你讲技术》我来看书你来进步让我们开始吧本书简介书名为《轻量级JavaEE企业应用实战》是本人在学习JavaEE框架的时候阅读的第一本书本书对于框架及相关基础知识讲述的比较详细和浅显适合初学者和需要全面了解JavaEE知识的人群。本文内容为本书第四章Struts2类型转换1.Struts2内建的类型转换器Struts2内建了字符串类型和如下类间的转换器boolean和Boolean转换char和Character转换int和Integer转换long和Long转换float和Float转换double和Double转换字符串和Date转换以上类型作为http请求参数时无须人为进行类型转换struts2将自动进行类型转换。2.基于OGNL的类型转换struts2可以将普通请求参数转换成复合类型的对象。Action类中直接使用符合类型的对象即可public class LoginAction{ private User user; //setter,getter方法 public String execute() throws exception{ //todo }}(1)因为Struts2将通过反射创建一个复合类(User)的实例因此系统必须为该复合类提供无参数构造(2)如果希望使用user.name请求参数的形式为Action实例的user属性的name赋值则必须为user复合类提供setName()方法因为struts2是通过setter方法赋值的Action中的符合类型也可以Map或者ListOGNL书写如下Map形式List形式:3.自定义类型转换再某些特殊情况下框架不知道如何把一个字符串转换成对应的复合对象比如将字符串abc,xyz转换成一个User实例其中abc为namexyz为pass。这时就需要自定义类型转换。自定义类型转换需要实现TypeConverter或者继承DefaultTypeConverter、StrutsTypeConverter(1)convertValue方法负责完成类型转换这个转换是双向的通过判断toType类型即可判断转换方向toType类型是需要转换的目标类型(2)convertValue方法参数第一个参数context是类型转换环境的上下文第二个参数value是需要转换的参数第三个参数toType是转换后的目标类型(3)convertValue的返回值就是类型转换后的值该值的类型也会随着转换方向的不同而不同(4)当把字符串转换成复合类型时value是一个字符串数组4.注册类型转换器需要将类型转换器注册在应用中struts框架才可以正常使用。注册方式如下(1)注册局部类型转换器局部类型转换器仅对某个Action的属性起作用在文件Action-conversion.properties中加入(2)注册全局类型转换器全局类型转换器对所有Action特定类型的属性都会生效在文件xwork-conversion.properties中加入(在应用的类加载路径下)手动实现输入校验1.重写validate()方法在validate方法中一旦校验失败通过addFieldError方法添加进FieldError中。如果FieldError不为空将自动跳转到input逻辑视图。2.重写validateXxx()方法如果我们的输入校验只想验证某个处理逻辑则需要提供一个validateXxx()方法其中xxx是逻辑处理方法的方法名。其他内容同上下图总结了类型转换和输入校验的整个处理流程使用struts2实现文件上传1.struts2的文件上传struts2默认使用的是Jakarta的Common-FileUpload文件上传框架需要引入如下两个jar包commons-io.jar、commons-fileupload.jar2.实现文件上传的Action(1)表单enctype属性设置为multipart-form-data(2)表单中增加file上传组件(3)Action中需要单个属性来封装文件域信息类型File的xxx属性封装了该文件域对应的文件内容类型String的xxxFileName属性封装了该文件的文件名类型String的xxxContentType属性封装了该文件的文件类型类型String的savePath属性用来配置文件的存储位置3.配置文件上传的Action上面配置除了使用元素设置了savePath外与其他action配置几乎一样4.手动实现文件过滤(1)在Action中定义一个专门用于进行文件过滤的方法改方法的方法名任意(2)在Action中增加一个验证文件的属性第一步中的方法判断这个属性的值(3)利用struts2输入校验来实现验证如validate或validateXxx5.拦截器实现文件过滤struts2提供了一个文件上传拦截器通过配置该拦截器可实现文件过滤。拦截器名称fileupload验证失败后会自动转入input逻辑视图。如下allowedTypes指定允许上传的文件类型多个文件类型用逗号隔开maximunSize制定允许上传的文件大小单位字节PS注意默认拦截器defaultStack必须配置6.输出错误提示国际化资源文件配置struts.messages.error.content.type.not.allowed您上传的文件类型只能是图片struts.messages.error.file.too.large您要上传的文件太大struts.messages.error.uploading文件上传错误使用Struts2控制文件下载1.实现文件下载Action(1)在页面中写入文件超链接(2)在Action中定义一个返回值类型是InputStream的方法2.配置Action需要配置一个类型为stream的结果属性说明如下contentType指定被下载文件的文件类型inputName指定被下载文件的入口输入流contentDisposition指定下载的文件名bufferSize指定下载文件的缓冲大小详解Struts2的拦截器机制1.拦截器在Struts2中的作用可以把Struts2理解成一个空容器大量的内建拦截器完成了该框架的大部分操作。Struts2拦截器是可插拔式设计拦截器有配置文件进行管理容易扩展和维护。Struts2框架的绝大部分功能都是通过拦截器来完成的当StrutsPrepareAndExecuteFilter拦截到用户请求后大量拦截器将会对用户请求进行处理然后才会调用用户开发的Action来处理用户请求。Struts2已经默认启动了大量通用功能的拦截器只要我们配置Action的package继承了struts-default包拦截器就会起作用。2.Struts内建的拦截器Struts2内建了大量的拦截器这些拦截器以name-class对的形式配置在struts-default.xml文件中其中那么是拦截器的名字class指定了拦截器的实现类。如果我们的package继承了Struts2的默认struts-default包则可以自由使用如下拦截器。alias实现在不同请求中相似参数别名的转换autowiring这是自动装配拦截器用于struts2和spring整合时Struts2可以使用自动装配的方式在来访问Spring容器中的Beanchain构建一个Action链使当前的Action可以访问前一个Action属性conversionError负责处理类型转换错误的拦截器createSession负责创建一个HttpSession对象debugging当使用开发模式时提供更多的调试信息execAndWait后台执行Action负责将等待画面发送给用户exception负责处理异常将异常映射为结果fileUpload用于文件上传负责解析表单中的文件域内容i18n国际化拦截器负责把所选语言区域放入用户Sessionlogger负责日志记录的拦截器model-driven用于模型驱动的拦截器当某个Action实现了ModelDriven接口它负责把getModel()方法的结果堆入值栈中params最基本的拦截器负责解析HTTP请求中的参数并将参数值设置成Action对应的属性值prepare如果Action实现了Preparable接口将会调用拦截器的prepare()方法static-params拦截器负责将xml中标签下标签中的参数传入actionscope范围转换拦截器将Action状态信息保存到HttpSession范围或者ServletContext范围servlet-config通过拦截器Action可直接访问Servlet APItimer拦截器负责输出Action执行时间token用于阻止重复提交token-session用于阻止重复提交把token保存在HttpSession中validation通过执行在xxxAction-validation.xml中定义的校验器实现数据校验workflow负责调用Action类中的validate方法校验失败则返回input逻辑视图3.配置拦截器在struts.xml中使用元素完成配置 参数值也可以定义拦截器栈来组合多个拦截器使用元素拦截器栈也可以包含拦截器栈4.使用拦截器拦截器的拦截行为将会在Action的请求处理方法之前被执行。拦截器的使用如下在元素中配置了三个拦截器defaultStack、mysimple、later5.配置默认拦截器一旦我们为某个Action显式应用了某个拦截器则默认拦截器不会生效如果需要使用默认拦截器必须手动配置该拦截器。也可以通过元素来配置默认拦截器使拦截器在包下所有Action中生效6.实现拦截器类自定义拦截器需要开发自己的拦截器类并实现Interceptor接口接口包含3个方法init()该方法用于初始化资源destroy()该方法用于销毁之前初始化的资源intercept(ActionInvocation invocation)该方法用于实现拦截动作该方法返回一个字符串作为逻辑视图并不会调用被拦截的Action需通过invoke方法继续执行如下图7.拦截方法的拦截器默认自定义的拦截器会拦截Action内的所有方法如果只想拦截指定方法需要继承MethodFilterInterceptor类提供了一个doIntercept(ActionInvocation invocation)抽象方法可重写此方法在MethodFilterInterceptor类中增加了两个额外方法用户限定拦截的Action方法setExcludeMethods(Stirng excludeMethods)排除需要过滤的方法setIncludeMethods(String includeMethods)设置需要过滤的方法如果同在在excludeMethods和includeMethods中列出则该方法会被拦截上面的两个参数需要在配置拦截器时设置 要拦截的方法(多个逗号隔开) 不拦截的方法(多个逗号隔开)8.拦截器链中拦截器的执行顺序在Action的控制方法执行前位于拦截器链前面的拦截器先发生作用在Action的控制方法执行后位于拦截器链前面的拦截器后发生作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

段页式管理方式

分段分页管理中最大的优缺点优点 缺点分页管理 内存空间利用率高,不会产生外部碎片,只会有少量的页内碎片 不方便按照逻辑模块实现信息的共享和保护分段管理 很方便按照逻辑模块实现信息的共享和保护 如果段长过大,…

网站建设与单位干部作风的关系网站竞价推广都有哪些

有些粉丝,希望对自定义业务中,驳回到发起人进行处理,比如可以重新进行发起流程,下面就给出一种方式,当然不一定是最好的方式,只是提供一种参考而已,以后可以考虑动态根据流程状态或节点信息进行…

推进电子设计革新:为什么模拟仿真正是核心助力?

在高速发展的电子设计领域,模拟仿真已成为现代工程师的「得力助手」,它不仅能快速验证设计,还能显著提升流程效率与质量。1、仿真的三大优势:提前预见,精准优化,高效迭代 错误无处遁形 仿真能在设计实施前及时暴…

河北网站seo策划公司变更地址需要多少钱

T2-简单 MST题解 题意 设 ω ( x ) \omega(x) ω(x)为 x x x的质因数所构成的集合大小; 给两个正整数 l l l r r r,图上有 r − l 1 r-l1 r−l1个点,为 l , l 1 , l 2 , ⋯ , r − 2 , r − 1 , r l,l1,l2,\cdots,r-2,r-1,r l,l1,l2,…

网站域名 格式怎么做学校网站和微信公众号

日常工作中,经常会用到FTP,一般情况下,FTP站点在IE中(尤其是IE7以后版本)打开,默认都不是以文件夹视图方式打开的,这时IE也会给你提示“若要在 Windows 资源管理器中查看此 FTP 站点&#xff0c…

完整教程:深度解析ZStack Cloud v5.4.0 LTS 基础架构三大核心突破

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:精读C++20设计模式:结构型设计模式:装饰器模式

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

*和 内存和地址 实例代码

#include <bits/stdc++.h> using namespace std; int main(){int number=42;int *ptr=&number;//ptr 存储 number 的地址 cout<<"变量值:"<<number<<endl; //42cout&l…

应用安全 --- 安卓加固 之 IPC

应用安全 --- 安卓加固 之 IPC应用安全 --- 安卓加固 之 IPC 会有一个调用者和被调用者,我们frida只能hook其中一个,无法获取全貌### 为什么看不到真实调用者信息?核心原因 :你看到的是一个 Binder IPC跨进程调用…

深入解析:前端开发,iframe 相关经验总结

深入解析:前端开发,iframe 相关经验总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

事业单位网站建设费入什么科目网站由谁备案

以下是一个使用DefaultsKit库的简单爬虫程序&#xff0c;用于爬取音频。代码中使用了https://www.duoip.cn/get_proxy的API获取代理服务器。 import Foundation import DefaultsKit ​ let url "https://www.douban.com/music" // 目标网站URL let proxyUrl "…

超市如何建立网站免费行情网站

文章目录 摘要Abstract文献阅读题目引言创新点方法利用长短期记忆网络学习时空演化特征构建用于气象辅助信息编码的堆叠自编码器使用多任务学习发现全市通用模式 模型实验数据集评估准则实验结果 深度学习Self-attentionself-Attention由来self-attention原理self attention代码…

寻找东莞微信网站建设三只松鼠软文范例500字

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

完整教程:Linux-01_2(vi / vim 编辑器)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

金华义乌网站建设企业建网站一般要多少钱

背景 在flink中&#xff0c;如果你想要访问记录的处理时间或者事件时间&#xff0c;注册定时器&#xff0c;或者是将记录输出到多个输出流中&#xff0c;你都需要处理函数的帮助&#xff0c;本文就来通过一个例子来讲解下副输出 副输出 本文还是基于streaming-with-flink这本…

全面解析Umi-OCR手写体识别能力:开源OCR的新标杆 - 指南

全面解析Umi-OCR手写体识别能力:开源OCR的新标杆 - 指南2025-10-02 09:46 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

Playwright MCP浏览器自动化详解指南 - 教程

Playwright MCP浏览器自动化详解指南 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

Python获取视频文件的各种属性信息

Python获取视频文件的各种属性信息很多时候我们需要获取视频文件的属性信息,这里记录一下几种使用Python获取视频文件的属性信息的方法。 方法一:使用opencv库 需要安装opencv库pip install opencv-python具体代码如…