- go: go.mod file not found in current directory or any parent directory.如何解决?
这个错误表明你正在执行goget命令,但是当前目录或任何父目录中都找不到go.mod文件。这可能是因为你的项目还没有使用GoModules进行管理。要解决这个问题,有几种方法:gomodinit其中是你的项目名称,这将创建一个新的go.mod文件。再次执行goget-ufyne.io/fyne/v2/cmd/
[email protected]正常。
- webpack 配置 style-loader时出现错误:Module build failed (from ../node_modules/style-loader/dist/cjs.js)
.ToString()°
webpackjavascriptes6/es7webpack前端node.js
webpack配置style-loader时出现错误,Modulebuildfailed(from…/node_modules/style-loader/dist/cjs.js):TypeError:this.getOptionsisnotafunctionatObject.loader1.确保loader配置中的顺序,loader的执行顺序是从右到左,从下到上的,这里要注意style-loade
- [FAILED] Failed to start Load Kernel Modules错误处理
雨中来客
Linux系统驱动开发
错误Log如下:[FAILED]FailedtostartLoadKernelModules.See'systemctlstatussystemd-modules-load.service'fordetails.根据错误提示:查看出错进程命令:systemctlstatussystemd-modules-load.service查看进程Log命令:sudojournalctl-b_PID=66得到
- python中的sys模块
DevGeek
python全栈python开发语言
sys中的常用方法首先第一个功能是modules,它并不是一个函数。而是一个属性,后面不用加括弧。通过调用它会返回一个列表。它会将Python启动时候所加载的模块全部集合起来。一会儿让我们来看看它们长什么样子。第二个功能是path它依然是一个属性,通过system调用path属性。可以返回当前Python的环境路径。不过这里说的环境路径可不是我们当前Python脚本执行的路径。我们可以认为是当前P
- golang学习线路图
gopher.guo
golanggogolanggo语言
学习Go(Golang)开发,应该从基础语法开始,逐步深入到并发编程、网络编程、Web开发、微服务架构、项目部署与调试等方向。以下是一个系统性的学习路线和内容详解,适合从零到进阶的开发者参考:一、Go语言基础Go语言的安装与配置Go的安装包下载与环境变量配置(GOROOT,GOPATH,gomod)使用GoModules管理依赖基础语法变量与常量的定义(var,const,类型推断:=)数据类型:
- 【Tora3踩坑日记】npx tailwindcss init报错:SyntaxError: Unexpected token ‘?‘
前端程序媛-Tian
Taro踩坑日记tailwindcss
详细报错信息如下:}=getOptions(name,options??{},false);^SyntaxError:Unexpectedtoken'?'atwrapSafe(internal/modules/cjs/loader.js:915:16)atModule._compile(internal/modules/cjs/loader.js:963:27)atObject.Module._e
- CSS Modules 终极指南:从入门到精通的前端样式隔离方案
AI实战架构笔记
AI架构开发实战前端cssai
CSSModules终极指南:从入门到精通的前端样式隔离方案关键词:CSSModules、前端样式隔离、模块化开发、CSS作用域、前端工程化摘要:本文将带领大家全面了解CSSModules这一强大的前端样式隔离方案。从背景知识的介绍开始,逐步深入解释核心概念,详细阐述算法原理和具体操作步骤,通过项目实战展示其实际应用,探讨实际应用场景和未来发展趋势。旨在让读者从入门到精通CSSModules,掌握
- Cpython
先编译在运行fromdistutils.coreimportsetup,ExtensionfromCython.Buildimportcythonizeimportnumpysetup(ext_modules=cythonize(Extension('dot_cython',sources=['dot_cython.pyx'],language='c',include_dirs=[numpy.ge
- 典型的 Vue 3 项目目录结构详解
CATTLECODE
vue.js前端javascript
典型的Vue3项目目录结构遵循模块化设计原则,旨在提升代码的可维护性和协作效率。以下基于主流脚手架(如create-vue或Vite)生成的模板进行详解,结合核心文件和目录的功能说明:根目录结构目录/文件作用说明引用来源node_modules/存储项目依赖的npm包,由包管理器自动生成,禁止手动修改。public/存放无需构建的静态资源(如index.html、favicon.ico),文件会直
- npm init vite-app runoob-vue3-test2 ,npm init vue@latest,指令区别
CATTLECODE
npmvue.js前端
这两个命令都是用于创建Vue.js项目的脚手架命令,但它们在技术栈、配置方式和项目结构上有显著区别:1.npminitvite-apprunoob-vue3-test2技术栈:基于Vite构建工具使用Vue3作为默认框架由Vite团队维护特点:bash复制代码npminitvite-app快速创建:零配置启动,没有交互选项文件结构:复制代码├──node_modules├──index.html├
- 解决flutter attach Bad UTF-8 encoding
青年别来无恙
问题DKFlutterModuleSalegit:(Dev1.0.1)✗flutterattachCheckingforadvertisedDartobservatories...Unhandledexception:FormatException:BadUTF-8encoding0xc(atoffset22)#0_Utf8Decoder.convert(dart:convert/utf.dart
- 【学习路线】Go语言云原生开发之路:从简洁语法到微服务架构
自学也学好编程
学习路线golanggolang学习
一、Go语言基础入门(1-2个月)(一)环境搭建与工具链Go环境安装官方安装:从golang.org下载安装包版本管理:g、gvm等Go版本管理工具环境变量:GOROOT、GOPATH、GOPROXY配置GoModules:现代依赖管理,go.mod文件工作区设置:项目结构、包管理开发工具选择VSCode:轻量级,Go插件丰富GoLand:JetBrains专业GoIDEVim/Neovim:vi
- 《Flutter篇第一章》基于GetX 和 Binding、Dio 实现的 Flutter UI 架构
架构流程图lib/├──app/│├──bindings/#依赖注入绑定││├──auth_binding.dart││└──main_binding.dart│├──modules/#功能模块││├──auth/#登录模块│││├──auth_controller.dart│││└──auth_page.dart││└──main/#主模块││├──tabs/#四个Tab页│││├──home/
- Enforcement (or not) for module-specific exported symbols
mounter625
Linuxkernel服务器linuxkernel网络eBPF
Loadablekernelmodulesrequireaccesstokerneldatastructuresandfunctionstogettheirjobdone;thekernelprovidesthisaccessbywayofexportedsymbols.Almostsincethismechanismwascreated,therehavebeendebatesoverwhich
- Golang 模块代理配置:go.mod 与 GOPROXY 最佳实践
Golang编程笔记
Golang开发实战Golang编程笔记golang网络开发语言ai
Golang模块代理配置:go.mod与GOPROXY最佳实践关键词:GoModules、go.mod、GOPROXY、依赖管理、私有仓库、模块代理、依赖解析摘要:本文从Go语言模块管理的核心痛点出发,结合开发者日常遇到的依赖下载慢、私有仓库访问难等问题,系统讲解go.mod文件的作用与写法、GOPROXY环境变量的配置逻辑,以及如何通过两者配合实现高效可靠的依赖管理。通过生活类比、流程图解和实战
- stable diffusion No module named taming
图片gan模型部署报错。pipinstalltaming-transformersImportError:cannotimportname'VectorQuantizer2'from'taming.modules.vqvae.quantize',用https://github.com/CompVis/taming-transformers/blob/master/taming/modules/vq
- PLC源型/漏型? 传感器 PNP/NPN?
干就完了1225
传感器PLCPNPNPN源型漏型共阳极共阴极
https://www.igus.cn/zh-CN/linear/e-motorshttps://www.igus.cn/zh-CN/linear/axis-linear-modulesPNP/PNP一般我们用来描述传感器类型,源型漏型我们一般用来描述PLC的类型。共阳极/共阴极通常用于描述多器件电路(如LED阵列)。1、NPN/NPN传感器一般日美国家NPN型传感器为主,德国等欧洲国家PNP型传
- NPM/Yarn完全指南:前端开发的“基石“与“加速器“
软件老王子
前端实战npm前端node.js
开篇:当你第一次运行npminstall时..."这node_modules文件夹怎么比我的项目代码还大100倍?!"——每个前端新手第一次看到node_modules时的反应都出奇地一致。别担心,今天我要带你彻底搞懂这个让项目"膨胀"的"罪魁祸首",以及如何用NPM/Yarn这两个神器优雅地管理它!一、包管理器:前端世界的"快递小哥"1.1为什么需要包管理器?想象你要做一道菜:没有包管理器:自己
- Android Studio中java项目添加kotlin代码方法
李艺为
javaandroidstudiokotlin
根目录下build.gradle修改:添加如下代码id'org.jetbrains.kotlin.android'version'1.9.0'applyfalse完成后应该如下//Top-levelbuildfilewhereyoucanaddconfigurationoptionscommontoallsub-projects/modules.plugins{id'com.android.app
- node.js基本信息整理
node.js是干什么的?node.js是一个能在服务端运行的JavaScriptnode.js目录分类bin:存放真实执行文件如:wwwnode_modules:存放当前项目的所有依赖public:静态资源文件(img.js.css)routes:项目路由文件views:页面文件app.js:项目启动文件package.json:项目依赖配置及开发者信息引入一个文件#引入外部express文件默
- 让 Node.js 支持全局路径的模块搜索
hashiqimiya
node.js
要让Node.js支持全局路径的模块搜索(即可以识别你全局安装的模块如express),你需要配置NODE_PATH环境变量。以下是详细步骤,适用于Windows系统:✅第一步:确认全局模块安装位置在终端中运行:npmconfiggetprefix输出示例:D:\npm-global那么全局模块路径就是:D:\npm-global\node_modules✅第二步:设置NODE_PATH环境变量方
- npm报错npm ERR! A complete log of this run can be found in
leese233
1024程序员节
网上有很多解决的办法,有的是删除node_modules从新npminstall.还有的解决办法是删除npm的缓存,但是这个报错还有一种根本性的原因–node版本太低,如果node的版本太低,而项目需求的版本较高,就有可能报这个错误,而且如果版本太低像删除node_modules从新npminstall也是没有用的,我遇到的就是这种问题,然后将node卸载从新安装高版本npminstall就不会遇
- go安装使用gin 框架
半桶水专家
golang入门golanggin开发语言
Gin是一个非常流行的GoWeb框架,轻量、高性能、API友好。下面是Gin的安装和基本使用教程:一、安装Gin确保你已经安装了Go开发环境(Go1.16及以上版本更好)并设置好了GOPATH。使用gomodules(推荐方式)在项目目录下执行:gomodinityour_project_namegoget-ugithub.com/gin-gonic/gin二、创建Gin示例项目目录结构如下:yo
- 大模型(LLM)推理框架汇总
AIGC大模型 吱屋猪
langchain人工智能AI-native百度产品经理神经网络自然语言处理
MLCLLMsubmodulesinMLCLLM大模型(LLM)好性能通用部署方案,陈天奇(tvm发起者)团队开发.项目链接docs:https://llm.mlc.ai/docs/github:https://github.com/mlc-ai/mlc-llm支持的平台和硬件platforms&hardware支持的模型|Architecture|PrebuiltModelVariants||—
- 理解module, script, library, package in Python
ikeepo
#小白学Pythonmodulelibraryscriptpackagesetup
OverviewPythonmodulesandPythonpackagesaretwomechanismsthatfacilitatemodularprogramming.AscriptisaPythonfilethat’sintendedtoberundirectly.AmoduleisaPythonfilethat’sintendedtobeimportedintoscriptsorothe
- ‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序
�困宝�
vue.js前端大屏端
‘vue-cli-service’不是内部或外部命令,也不是可运行的程序产生原因:项目下的node_modules文件损坏。解决方案:第一步:删除图片中的文件第二步:在Terminal中运行yarninstall或者npminstall;可能会报缓存问题:清缓存:yarncacheclean第三步:等待下载加载完成即可;在Terminal中运行yarninstall或者npminstall;第四步
- echars世界地图,显示指定的国家散点图
xkxnq
vuevue.jsjavascript
效果如下1.下载:npminstallecharts--save2,引入世界地图在main.js文件里引入(这里是Vue3.0的模板)importechartsfrom'echarts'Vue.prototype.$echarts=echartsimport'../node_modules/echarts/map/js/world.js'//引入世界地图3.使用import{mapoption,p
- Vite的优缺点(精简版)
优点作为一款前端构建工具,它的核心特点是“快”,并且充分利用了现代浏览器对ESModules的原生支持,一切围绕这一点展开快启动:通过ESModules,它省去了打包整个应用的时间,可以直接在浏览器中加载模块,使得启动时间大大缩短热更新:提供热模块替换功能,并且由于省去了打包环节,只请求变化了部分,几乎实现了实时的热模块替换。缺点兼容性:某些深层依赖或动态引入的CommonJS模块可能出问题。并且
- RN 新架构到底牛在哪?一张图看懂「砍线程、省 Bridge、帧率拉满」
wayne214
架构reactnative
新旧架构的核心区别“新架构把原来基于Bridge的异步JSON通信,变成了基于JSI的同步直接调用,并拆掉了启动时全量初始化、按需加载模块”。下面从6个维度把差异展开说明。维度旧架构(≤0.67)新架构(Fabric+TurboModules)通信模型Bridge:JS→JSON→原生,异步、串行、易阻塞JSI:JS直接持有C++HostObject引用,可同步调用渲染管线JS线程→Shadow线
- 若依框架(路由跳转,如何动态修改tabs页的title )
5335ld
vue.jsjavascript前端
//store/modules/tagsView.js页面中添加constmutations={//动态改变tab页签EDIT_VISITED_VIEWS:(state,view)=>{for(varIndexinstate.visitedViews){console.log(state.visitedViews[Index].path)if(state.visitedViews[Index].p
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache