struts.xml的一些配置:

Struts2中constant标签的一些配置:

.......................................

<constant name="struts.convention.default.parent.package" value="cmcc-default" />
<constant name="struts.convention.package.locators" value="action" />
<constant name="struts.convention.result.path" value="/WEB-INF/jsp/"/>
<constant name="struts.convention.package.locators.basePackage" value="com.cmcc.bdp.action" />
<constant name="struts.i18n.encoding" value="utf-8" />
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

.......................................

下面是一部分constant的讲解:

 用了Convention插件来实现所谓的0配置,

1 、(配置访问的URL的默认的路径).   <constant name="struts.convention.package.locators.basePackage" value="com.ZTest.web.action"/>
这个属性用于约定Action 类的根包(这个包是Java 类的包,而不是Struts.xml中配置的<package>节点) 
例如: 
在一个项目中有这样一系列的Java 包,那么当指定convention的这个属性,Struts 框架就会在你访问特定的URL时会自动的找到所要的请求的实现类。 
当你在浏览器中输入:http://localhost:8080/XXX/HelloWorld.action Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java 
当你在浏览器中输入:http://localhost:8080/XXX/test/aaa.action Struts会自动的找到并执行com.ZTest.web.action.test.aaaAction.java类。 


2、返回资源的结果路径.    struts.convention.result.path=/WEB-INF/ruiri 

这个属性用于约定Action类执行完毕以后返回资源的结果路径###必须以"/" 开头 <constant name="struts.convention.result.path" value="/WEB-INF/jsp/"/>
例如: 
当你在浏览器中输入:http://localhost:8080/HelloWorld.action Struts会自动的找到并执行com.ZTest.web.action.HelloWorldAction.java类,

并放回到/WEB-INF/ruiri/HelloWorld.jsp 
当你在浏览器中输入:http://localhost:8080/XXX/test/aaa.action Struts会自动的找到并执行com.ZTest.web.action.test.aaaAction.java, ,并放回到WEB-INF/ruiri/test/HelloWorld.jsp  


3.    struts.convention.action.name.lowercase=false 
###
是否将Action类转换成小写 
当一个类的类名是多个单词组合起来的时候,例如 HelloWolrdAction.java,如果指定了这个属性,则访问的地址必须是:  HelloWorld.action,如果不是指定这个属性则是:  helloworld.action 


4.    struts.convention.action.name.separator= 
这个属性是约定当一个Java 类有多个单词组合成的时候,映射的URL地址的时候访问的格式的分隔符。 
如果不指定这个属性,Struts默认的分隔符是 “-”,例如 HelloWorldAction 则访问的URL Hello-World.action 
如果指定这个属性是上面的格式,则是没有分隔符,会按照Java 类名直接映射,例如 HelloWorldAction 则访问的URL HelloWorld.action 

 

5.     struts.convention.default.parent.package=default 

这个属性指定的是Strtus.xml中配置的 <package>节点的父节点。(有什么用?可能就是用于定义全局的Result 吧,这个本人也没深入的研究过) 


6.     struts.convention.package.locators=action  
确定搜索包的路径。只要是结尾为action的包都要搜索。 
详细讲解一下这个属性,因为我刚开始的时候被这个属性搞晕了,希望我的解释能帮助和我有过同样疑问的友人。

 

例如:我们有这样一些类: 
com.ZTest.web.action.AAAAAction 
com.Ztest.web.action.BBBBAction 
com.Ztest.web.action.test/CCCCAction 
com.Ztest.web.action.test/DDDDAction 
com.Ztest.web.action.test/first/EEEEAction 
com.Ztest.web.action.test/first/FFFFAction 


如果,我设置这个属性的值为action 那么我们访问这几个类得URL就是 
http://localhost:8080/ZTest/AAAA.action 
http://localhost:8080/ZTest/BBBB.action 
http://localhost:8080/ZTest/test/CCCC.action 
http://localhost:8080/ZTest/test/DDDD.action 
http://localhost:8080/ZTest/test/first/EEEE.action 
http://localhost:8080/ZTest/test/first/FFFF.action 

而每个URL对应的资源文件必须是下面的格式:(按照本文中的result.path配置的结果) 
/WEB-INF/ruiri/AAAA.jsp 
/WEB-INF/ruiri/BBBB.jsp 
/WEB-INF/ruiri/test/CCCC.jsp 
/WEB-INF/ruiri/test/DDDD.jsp 
/WEB-INF/ruiri/test/first/EEEE.jsp 
/WEB-INF/ruiri/test/first/FFFF.jsp 
也就是说: 

struts.convention.package.locators=action
就是相当于下面的解释 
类路径                                                       命名空间(struts.xml中配置的<package>节点) 
com.ZTest.web.action.AAAAAction             
->    / 
com.ZTest.web.action.test.CCCCAction        ->    /test 
com.ZTest.web.action.test.first.EEEEAction ->    /test/first 


当然对应的资源的文件路径就是
/WEB-INF/ruiri/AAAA.jsp 
/WEB-INF/ruiri/test/CCCC.jsp 
/WEB-INF/ruiri/test/first/EEEE.jsp 

区别: 
struts.convention.package.locators=action  
确定搜索包的路径。只要是结尾为action的包都要搜索。 
struts.convention.package.locators.disable=false 
struts.convention.package.locators.basePackage=com.xxx.web.action 
basePackage
按照默认不用配置,如果配置,只会找以此配置开头的包。 
locators
locators.basePackage都是一组以逗号分割的字符串

 

Demo:

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC "-//ApacheSoftware Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.convention.default.parent.package"value="cmcc-default" />

    <constant name="struts.convention.package.locators"value="action" />

    <constant name="struts.convention.result.path" value="/WEB-INF/jsp/"/>

    <constant name="struts.convention.package.locators.basePackage"value=‘XXX.XX.XXX.action’/>

    <constant name="struts.i18n.encoding" value="utf-8" />

    <constant name="struts.enable.DynamicMethodInvocation"value="true"/>

   

    <package name="cmcc-default" extends="convention-default">

        <!-- 基于paramsPrepareParamsStack,增加store interceptor保证actionMessageredirect后不会丢失-->

        <interceptors>

            <interceptor name="loginInter" class="com.cmcc.bdp.base.LoginInterceptor"/>            

            <interceptor name="userRole"   class="com.cmcc.bdp.base.UserRoleInterceptor"/>

           

            <interceptor-stack name="webStack">

                <interceptor-ref name="store">

                    <param name="operationMode">AUTOMATIC</param>

                </interceptor-ref>

                <interceptor-ref name="paramsPrepareParamsStack" />

                <interceptor-ref name="loginInter"/>

              <interceptor-ref name="userRole"/>

            </interceptor-stack>

        </interceptors>

 

        <default-interceptor-ref name="webStack" />

 

        <global-results>

            <result name="notRoleError" >/WEB-INF/jsp/common/notRoleError.jsp</result>

        </global-results>

 

        <global-exception-mappings>

            <exception-mapping  exception="java.lang.Exception"result="error"/>

        </global-exception-mappings>       

    </package>

</struts>

--------------------------------------------------------------------------------------------

关于更多的constant的配置可以参考下面的信息:


struts.serve.static.browserCache 
该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false。 

struts.enable.DynamicMethodInvocation 
该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 

struts.enable.SlashesInActionNames 
该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。 

struts.tag.altSyntax 
该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true,该属性的默认值是true。 

struts.devMode 
该属性设置Struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的 默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。 

struts.i18n.reload 
该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件。该属性默认值是false。在开发阶段将该属性设置为true会更有利于开发, 但在产品发布阶段应将该属性设置为false。 
提示 开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为 false,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能。 

struts.ui.theme 
该属性指定视图标签默认的视图主题,该属性的默认值是xhtml。 

struts.ui.templateDir 
该属性指定视图主题所需要模板文件的位置,该属性的默认值是template,即默认加载template路径下的模板文件。 

struts.ui.templateSuffix 
该属性指定模板文件的后缀,该属性的默认属性值是ftl。该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、 Velocity和JSP模板。 

struts.configuration.xml.reload 
该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。 

struts.velocity.configfile 
该属性指定Velocity框架所需的velocity.properties文件的位置。该属性的默认值为 velocity.properties。 

struts.velocity.contexts 
该属性指定Velocity框架的Context位置,如果该框架有多个Context,则多个Context之间以英文逗号(,)隔开。 

struts.velocity.toolboxlocation 
该属性指定Velocity框架的toolbox的位置。 

struts.url.http.port 
该属性指定Web应用所在的监听端口。该属性通常没有太大的用户,只是当Struts 2需要生成URL时(例如Url标签),该属性才提供Web应用的默认端口。 

struts.url.https.port 
该属性类似于struts.url.http.port属性的作用,区别是该属性指定的是Web应用的加密服务端口。 

struts.url.includeParams 
该属性指定Struts 2生成URL时是否包含请求参数。该属性接受none、get和all三个属性值,分别对应于不包含、仅包含GET类型请求参数和包含全部请求参数。 

struts.custom.i18n.resources 
该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。 

struts.dispatcher.parametersWorkaround 
对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题。该属性的默认值是false。对于 WebLogic、Orion和OC4J服务器,通常应该设置该属性为true。 

struts.freemarker.manager.classname 
该属性指定Struts 2使用的FreeMarker管理器。该属性的默认值是org.apache.struts2.views.freemarker.FreemarkerManager,这是 Struts 2内建的FreeMarker管理器。 

struts.freemarker.wrapper.altMap 
该属性只支持true和false两个属性值,默认值是true。通常无需修改该属性值。 

struts.xslt.nocache 
该属性指定XSLT Result是否使用样式表缓存。当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false。 

struts.configuration.files 
该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。该属性的默认值为struts- default.xml,struts-plugin.xml,struts.xml,看到该属性值,读者应该明白为什么Struts 2框架默认加载struts.xml文件了。 

struts.objectFactory 
该属性指定Struts 2中的action由哪个容器创建

struts.convention.default.parent.package:这个常量表示缺省的包名是什么,因为在实际应用中,我们常常定义一个缺省的包,这个包中定义了一大堆的拦截器等等,然后其他的包继承自这个包。这个常量可以配也可以不配;
struts.convention.package.locators:这个常量表示你的action类的java包的包名的后缀是啥:比如action。这个常量也可以不配;
struts.convention.package.locators.basePackage:这个常量表示你的action类的java包package的名字是啥;这个常量也可以不配;

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
"http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>  
<!--指定Web应用的默认编码集.该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为GBK或者GB2312;   
提示:当设置该参数为GBK时,相当于调用HttpServletRequest的setCharacterEncoding方法. >  
<constant name="struts.i18n.encoding" value="UTF-8" />  

<!--指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring. >  
<constant name="struts.objectFactory" value="spring" />  

<!--指定Spring框架的自动装配模式, 该属性的默认值是name, 即默认根据Bean的name属性自动装配. >  
<constant name="struts.objectFactory.spring.autoWire" value="name" />  

<!--该属性指定整合Spring框架时,是否缓存Bean实例,该属性只允许使用true和false两个属性值,它的默认值是true.通常不建议修改该属性值. >  
<constant name="struts.objectFactory.spring.useClassCache" value="true" />  

<!--该属性指定处理multipart/form-data的MIME类型(文件上传)请求的框架,该属性支持cos,pell和jakarta等属性值, 即分别对应使用cos的文件上传框架,pell上传及common-fileupload文件上传框架.该属性的默认值为jakarta.   
注意:如果需要使用cos或者pell的文件上传方式,则应该将对应的JAR文件复制到Web应用中.例如,使用cos上传方式,则需要自己下载cos框架的JAR文件,并将该文件放在WEB-INF/lib路径下. >  
<constant name="struts.multipart.parser" value="jakarta" />  

<!--该属性指定上传文件的临时保存路径,该属性的默认值是javax.servlet.context.tempdir. >  
<constant name="struts.multipart.saveDir" value="" />  

<!--该属性指定Struts 2文件上传中整个请求内容允许的最大字节数. >  
<constant name="struts.multipart.maxSize" value="1000000000000" />  

<!--该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理.如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开. >  
<constant name="struts.action.extension" value="do" />  

<!--该属性设置是否通过JAR文件提供静态内容服务,该属性只支持true和false属性值,该属性的默认属性值是true. >  
<constant name="struts.serve.static" value="true" />  

<!--该属性设置浏览器是否缓存静态内容.当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false. >  
<constant name="struts.serve.static.browserCache" value="true" />  

<!--该属性设置Struts 2应用是否使用开发模式.如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示.该属性只接受true和flase两个值,该属性的默认值是false.通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false. >  
<constant name="struts.devMode" value="false" />  

<!--该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件(允许国际化文件重载).该属性默认值是false.在开发阶段将该属性设置为true会更有利于开发,但在产品发布阶段应将该属性设置为false.   
提示:开发阶段将该属性设置了true,将可以在每次请求时都重新加载国际化资源文件,从而可以让开发者看到实时开发效果;产品发布阶段应该将该属性设置为false,是为了提供响应性能,每次请求都需要重新加载资源文件会大大降低应用的性能. >  
<constant name="struts.i18n.reload" value="false" />  

<!--该属性指定视图标签默认的视图主题,该属性的默认值是xhtml. >  
<constant name="struts.ui.theme" value="simple" />  

<!--该属性指定模板文件的后缀,该属性的默认属性值是ftl.该属性还允许使用ftl、vm或jsp,分别对应FreeMarker、Velocity和JSP模板. >  
<constant name="struts.ui.templateSuffix" value="ftl" />  

<!--该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件.该属性的默认值是false. >  
<constant name="struts.configuration.xml.reload" value="false" />  

<!--该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. >  
<constant name="struts.custom.i18n.resources" value="nationz" />  

<!--对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,此时可以设置该属性值为true来解决该问题.该属性的默认值是false.对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true. >  
<constant name="struts.dispatcher.parametersWorkaround" value="false" />  

<!--指定是否缓存FreeMarker模版。默认值false。>  
<constant name="struts.freemarker.templatesCache" value="true" />  

<!--该属性只支持true和false两个属性值,默认值是true.通常无需修改该属性值. >  
<constant name="struts.freemarker.wrapper.altMap" value="true" />  

<!--该属性指定XSLT Result是否使用样式表缓存.当应用处于开发阶段时,该属性通常被设置为true;当应用处于产品使用阶段时,该属性通常被设置为false. >  
<constant name="struts.xslt.nocache" value="false" />  

<!--该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开.该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性值,所以应该明白为什么Struts 2框架默认加载struts.xml文件了. >  
<constant name="struts.configuration.files" value="struts-default.xml,struts-plugin.xml" />  

<!--设置映射器是否总是选择完整的名称空间。该属性的默认值时false。>  
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false" />  

<!--设置Convention插件定位视图资源的根路径。默认值为/WEB-INF/content>  
<constant name="struts.convention.result.path" value="/WEB-INF/content/" />  

<!--Convention插件以该常量指定包作为根包>  
<constant name="struts.convention.action.package" value="default" />  

<!--是否从包中搜索Action>  
<constant name="struts.convention.action.disableScanning" value="false"/>  

<!-- 官方只说明在jboss下需要设置,情况不明 -->  
<constant name="struts.convention.exclude.parentClassLoader" value="true" />   
<constant name="struts.convention.action.fileProtocols" value="jar,zip" />  

<!--包括哪些jar包中的action。逗号分割字符串。>  
<constant name="struts.convention.action.includeJars" value=".*?/_wl_cls_gen.*?jar(!/)?" />  

<!--确定搜索包的路径。只要是结尾为action的包都要搜索。>  
<constant name="struts.convention.package.locators" value="action" />  

</struts>  


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

相关文章

  1. 微信小程序之授权登录的实现(附完整源码)

    前言:由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发。官方连接:点击打开链接1.实现思路自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof 接口。在用户进…...

    2024/4/20 11:26:55
  2. Struts2 框架的简单实现——轻松理解Struts原理

    Struts2因该算是目前JavaWeb中MVC框架中最火的一个了,我第一次接触框架是在大学时期,那时候第一次学的还是Struts1框架,当时想的是:既然有1和2那就从低版本的开始学吧!当时自己想当然的将Struts2当成了Struts1的升级版本。可直到后来才发现自己大错特错,Struts2和Struts1…...

    2024/4/21 10:27:35
  3. 初识Struts2简单理解

    在使用之前要知道Struts2框架带来的便利,他有什么好处。 之所以使用Struts2框架是因为它简化了编程,提高了开发效率。增加的程序的可读性和可维护性。Struts框架是建立在Web容器之上的,用来快速构建灵活、稳定Web应用程序的一种框架。该框架由Apache基金会研发,是一种被广泛…...

    2024/4/21 10:27:33
  4. 你不可不知的struts2参数处理机制

    struts2是一个优秀的框架,他的出现让我们和Servlet说good bye,从此以后我们用Action类即可完成以前复杂,冗余的操作。我们知道在Servlet时代,我们通过request获取到参数,我们还需要进行一系列封装和处理,最终将其传递,而struts2已经帮我们解决了这些问题,让我们更专注于…...

    2024/4/21 10:27:33
  5. 目前最强开源人脸检测算法RetinaFace

    https://mp.weixin.qq.com/s?__biz=MzIwMTE1NjQxMQ==&mid=2247487588&idx=1&sn=069dcd37a3182b039c7ff658e413fc40&chksm=96f36230a184eb2659d4a94eec6c41d4250ff8a1bcc2be909a16584d2fdece984060b150b3ed&mpshare=1&scene=23&srcid=#rd人脸检测为…...

    2024/4/21 10:27:31
  6. 指定struts2配置文件struts.xml的路径

    ssh还是毕业的时候自觉了下下,对这个框架本不是很了解,加上出来工作用的一直是play框架,今天闲得慌就写了个ssh的demo,途中遇到了各种一大堆的错误,大部不外乎是缺少jar包造成的,到整合struts2的时候我不想把struts.xml文件放在默认目录src下,就改变了它的放置目录,放到…...

    2024/4/21 10:27:32
  7. 微信小程序餐厅点餐项目源码

    我们经常在外面餐厅吃饭会发现现在还多餐厅桌子上都会有个小程序二维码,我们点餐的时候直接扫码就可以点餐支付。今天闲来没事花了一个早上的时间做了一个,可以实现扫码点餐,统计商品和计算价钱,支付功能(ps:接口没有和后端对接)。最新百度也在搞小程序,淘宝也有小程序…...

    2024/4/21 10:27:29
  8. (刷题笔记) 牛客网 腾讯2020校园招聘-后台 3.逆序对

    目录题目解题思路代码(C++) 题目 复制过来会乱码,题目是截图截过来的,可能会不清楚,可以通过下面的连接去看题目链接:https://www.nowcoder.com/questionTerminal/8fe007e54fc04b5e82089aaa71ba3553 来源:牛客网 解题思路 这道题我一开始只会用暴力法写,也就是按照题目意…...

    2024/4/26 1:43:05
  9. Struts2核心工作原理解析

    这篇文章对应的并非Struts2的最新版本,但其原理还是相同的。这是Struts2官方站点提供的Struts 2 的整体结构。一个请求在Struts2框架中的处理大概分为以下几个步骤: 客户端提起一个(HttpServletRequest)请求,如上文在浏览器中输入”http://localhost:8080/TestMvc/add.act…...

    2024/4/21 10:27:27
  10. struts2配置文件struts.xml的目录问题

    struts2的配置文件struts.xml默认是直接在src目录下。这样我们在部署描述符web.xml中,指定struts2的过滤器时,直接如 清单一: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</f…...

    2024/4/21 10:27:26
  11. 使用 Spring WebSocket 实现向用户推送消息的功能

    1、websocket+spring http://tech.lede.com/2017/03/08/qa/websocket+spring/2、《Spring 5 官方文档》22. WebSocket Support http://ifeve.com/%E3%80%8Aspring-5-%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E3%80%8B22-websocket-support/...

    2024/4/21 10:27:25
  12. “个人简历”微信小程序+源码

    “个人简历”微信小程序+源码 运行工具:微信web开发者工具源码链接: https://download.csdn.net/download/qq_38275941/10881657...

    2024/4/21 10:27:25
  13. 001--Struts2快速入门与使用IntelliJ IDEA创建第一个web项目

    Struts2是一种基于MVC模式的轻量级web框架,自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中。本系列将针对Struts2的简介、特点、安装、执行流程等内容进行讲解。简介概念Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,…...

    2024/4/21 10:27:23
  14. Struts2原理与工作流程简述

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需要说出底层是怎么实现的,我估计大多数的人也听不懂。当面试官问到我们Struts2的工作原理时,…...

    2024/4/21 10:27:22
  15. JavaEE Struts2框架

    目前有很多MVC框架,其中Struts2是一个被广泛使用的开源框架。但是,它的前身并不是Struts1,而是另一个优秀的开源框架WebWork,Struts2综合了Struts1和WebWork两大框架的优点。其全新的Struts 2的体系结构与Struts1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器…...

    2024/4/21 10:27:21
  16. 通过实例学习Struts2 - 从struts-blank开始 (1)

    最近发现一些网站在Copy&Paste我的文章, 请尊重我的劳动成果,在转载的时候注明出处,谢谢。 前言 一直用Struts1 , 现在新的项目要转向Struts2了, 先研究学习一下,做点技术储备。 我一直认为计算机软件行业是一个实践性非常强的行业,书读了多少都不管用, 一定要卷起袖…...

    2024/4/21 10:27:22
  17. 10分钟入门 - 微信小程序开发

    注册微信小程序 如果你还没有微信公众平台的账号,请先进入微信公众平台首页,点击 “立即注册” 按钮进行注册。注册的账号类型可以是订阅号、服务号、小程序以及企业微信,我们选择 “小程序” 即可。 接着填写账号信息,需要注意的是,填写的邮箱必须是未被微信公众平台注册…...

    2024/4/20 17:40:29
  18. InputStreamReader和OutputStreamWriter的用法(一)

    首先说明下字节流和字符流: FileReader,FileWriter 是读字符的,1个字符是2个字节,16位OutputStream ,InputStream是读字节的,1个字节是8位 如果要读汉字,一个汉字是2个字节,用InputStream读就把汉字折成两半,不太适合吧。 字符流主要读文本效率比较高。字节流主要读二…...

    2024/4/28 14:26:35
  19. 【小程序】微信小程序代码如何转uniapp代码?

    众所周知,微信小程序的语法和uniapp的语法接近,一个是Vue的近亲,一个完全兼容Vue,所以他们相互之间转换应该也是不难的。 微信小程序的语法,其实是vue.js语法的裁剪定制版,在数据绑定、自定义组件等很多方面都有相似之处。 以下是一个小程序源码转换步骤指南: 客户端代码…...

    2024/4/20 17:40:26
  20. struts.objectFactory和struts.objectFactory.spring.autoWire

    struts.objectFactory这个属性用于说明Struts2的对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于Spring中的对象池,当想要得到Spring中的对象池时,申明struts.objectFactory为Spring的对象池构建工厂。当指定…...

    2024/4/20 17:40:25

最新文章

  1. face_recognition+python-opencv实现摄像头实时人脸识别

    参考&#xff1a; https://www.jianshu.com/p/9d5f0020acd5 完整代码 # -*- coding: utf-8 -*-import face_recognitionimport cv2import oscamera cv2.VideoCapture(0)font cv2.FONT_HERSHEY_DUPLEXface_names []face_codings []person_list os.listdir("faces/&quo…...

    2024/5/3 23:30:24
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 贪心算法|1005.K次取反后最大化的数组和

    力扣题目链接 class Solution { static bool cmp(int a, int b) {return abs(a) > abs(b); } public:int largestSumAfterKNegations(vector<int>& A, int K) {sort(A.begin(), A.end(), cmp); // 第一步for (int i 0; i < A.size(); i) { // 第二步if…...

    2024/5/3 21:08:13
  4. WP Rocket v3.15.10最新版强大的WordPress缓存插件

    WP Rocket v3.15.10是一款强大的WordPress缓存插件&#xff0c;它通过一系列优化措施来提高网站的速度和性能。 WP Rocket与免费缓存插件相比&#xff0c;提供了更丰富和高级的自定义设置功能。这些包括媒体优化、预加载、延迟加载和数据库优化等。特别是对于没有任何缓存技术…...

    2024/4/30 17:25:04
  5. 机器学习就这?机器学习的本质------数学应用题?

    机器学习是人工智能领域的一个重要分支&#xff0c;它利用计算机算法从数据中学习和建立模型&#xff0c;以便进行预测或决策&#xff0c;而无需进行明确的编程。机器学习的应用范围非常广泛&#xff0c;从图像识别、自然语言处理到推荐系统等。 概念 机器学习的核心概念是&am…...

    2024/5/3 14:06:04
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57