- Mac M芯片-配置Java环境变量
lctie
macosjava开发语言
MacM芯片-配置Java环境变量请确保Java已安装Step1查看JAVA_HOME的位置(Step2中会有具体样例)通过安装包安装:/Library/Java/JavaVirtualMachines/[具体版本]/Contents/Home通过homebrew安装:/opt/homebrew/Cellar/openjdk@[JDK版本]/[具体版本号]/libexec/openjdk.jdk/
- aspose 转pdf表格大小乱了_java 中使用aspose 将Excel 表格转成 pdf 文件 不出现折行...
kimi的萌miki
aspose转pdf表格大小乱了
excel表格转成功后的pdf文件话不多说直接上代码importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importcom.aspose.cells.License;importcom.a
- 【转】C# DataGridView添加右键菜单等技巧
zjwen2007
C#
1).右键点击行时选中行,并弹出操作菜单1).添加一个快捷菜单contextMenuStrip1;2).给dataGridView1的CellMouseDown事件添加处理程序:复制内容到剪贴板程序代码privatevoidDataGridView1_CellMouseDown(objectsender,DataGridViewCellMouseEventArgse){if(e.Button==M
- C# DataGridView添加右键菜单等技巧
Nemo_XP
Winform
1).右键点击行时选中行,并弹出操作菜单1).添加一个快捷菜单contextMenuStrip1;2).给dataGridView1的CellMouseDown事件添加处理程序:privatevoidDataGridView1_CellMouseDown(objectsender,DataGridViewCellMouseEventArgse){ if(e.Button==MouseButt
- VBA提取word表格内容到excel
那只可爱的野兽
VBwordexcel表格
这是一段提取word表格中部分内容的vb代码。Sub提取word表格()mypath=ThisWorkbook.Path&"\"myname=Dir(mypath&"*.doc*")n=4'indexofrowsRange("A1:F1")=Array("课程代码","课程名称","专业","备用1","备用2","备用3")Whilemyname=2Cells(n,1)=.Cell(m,3).R
- 使用MATIO库读取Matlab数据文件中的cell结构数据
东北豆子哥
数值计算/数值优化matlab
使用MATIO库读取Matlab数据文件中的cell结构数据MATIO是一个用于读写Matlab数据文件(.mat)的C/C++库。下面我将展示如何使用MATIO库来读取Matlab文件中的cell结构数据。示例程序#include#include#includeintmain(intargc,char**argv){//检查输入参数if(argc!=2){fprintf(stderr,"Usag
- fpga如何约束走线_FPGA时序约束实战篇之多周期路径约束
weixin_39931362
fpga如何约束走线
多周期路径约束多周期路径,我们一般按照以下4个步骤来约束:1.带有使能的数据首先来看带有使能的数据,在本工程中的TmingReport中,也提示了同一个时钟域之间的几个路径建立时间不满足要求其实这几个路径都是带有使能的路径,使能的周期为2倍的时钟周期,本来就应该在2个时钟周期内去判断时序收敛。因此,我们添加时序约束:set_multicycle_path2-setup-from[get_cells
- python基础-13-处理excel电子表格
tomjourney
python快速上手pythonexcel开发语言
文章目录【README】【13】处理Excel电子表格【13.1】Excel文档【13.2】安装openpyxl模块【13.3】读取Excel文档【13.3.1】使用openpyxl模块打开excel文档【13.3.2】从工作簿取得工作表【13.3.3】从工作表sheet获取单元格cell【13.3.5】从表中获取行和列【13.3.6】工作簿、工作表、单元格复习【13.5】写入Excel文档【13
- Mac下Homebrew的安装与使用
石头dhf
macos
Mac下Homebrew的安装与使用一蓑烟羽关注2017.10.1911:59*字数515阅读7684评论0喜欢3Homebrew简介,安装与使用简介Homebrew官方网站Homebrew是一个包管理器,用于安装Apple没有预装但你需要的UNIX工具。(比如著名的wget)。Homebrew会将软件包安装到独立目录(/usr/local/Cellar),并将其文件软链接至/usr/local。
- SNU-638 Cells人胃癌传代细胞|有STR图谱
quanliangcells06
ATCC细胞atcc细胞
"SNU-638Cells人胃癌传代细胞|有STR图谱细胞别名:SNU638背景信息:详见相关文献介绍传代比例:1:2-1:4(首次传代建议1:2)H358Cells;背景说明:1981年从一位开始化疗之前的患者的肿瘤组织中分离建株。超微结构研究表明细胞质中有Clara细胞的特征结构细胞表达主要的肺表面结合蛋白SP-A的蛋白和RNA。不表达SP-B和SP-C。他们在软琼脂中的克隆形成效率为0.83
- DMS-153 Cells人小细胞肺癌传代细胞|有STR图谱
quanliangcells06
ATCC细胞atcc细胞
"DMS-153Cells人小细胞肺癌传代细胞|有STR图谱细胞别名:DMS-153;DMS153;DarmouthMedicalSchool153背景信息:详见相关文献介绍传代比例:1:2-1:4(首次传代建议1:2)LA-795Cells;背景说明:肺癌;男性;传代方法:1:2-1:3传代;每周换液2-3次。;生长特性:贴壁;形态特性:详见产品说明书;相关产品有:NR8383细胞、HTori3
- 【Python】开源包openpyxl.utils.cell的工具函数源代码欣赏
qilei2010
Pythonpython开源开发语言
openpyxl是Python中比较优秀的,用于读写xlsx文件的第三方开源库,里面有个utils包封装了很多常用的单元格转换函数,写的简洁实用,便于学习参考,特粘贴如下。以后我们在读写Excel表格文件时,就无需重复造轮子,直接就可以直接用下面的形式,使用这些函数:importopenpyxl.utils.cella,b=coordinate_to_tuple('B3')print(a,b)#3
- A子元素撐高了父元素,同級的B子元素如果要和父級元素高度一致,用display:table
王焜棟琦
Html5cssHtml5css
A子元素撐高了父元素,同級的B子元素如果要和父級元素高度一致,父級容器用display:table;子級元素用display:table-cell;處理body{background-color:#ffffff;padding:20px;}.item01{display:inline-block;padding-right:10px;}.titleLeft{width:120px;text-ali
- 2024年最全python-docx 包处理 Word 文件的常用操作命令!_python docx(1)
2401_84584583
程序员pythonwordc#
表格中每个单元格可进行文本编辑,颜色填充;对于特定表格而言可通过row、column索引来进行定位cell=table.cell(0,1)赋值其文本内容cell.text=‘parrot,possiblydead’对一个一个单元格修改操作太麻烦了,可以一次选中指定列,对其单元格数据进行逐个修改row=table.rows[1]row.cells[0].text=‘Foobartoyou.’row.
- matlab怎样自动搜索文件夹中的所有txt文件,并将每个txt文件中的数据存放到一个cell数组中——MATLAB批量处理数据
舞动的白杨
12-matlab日常算法matlab数据处理数据批量处理
在使用MATLAB批量处理数据时,有时候需要自动搜索文件夹中的所有txt文件,并将每个txt文件中的数据存放到一个以一定规律命名的变量中,以便于后续通过循环处理每个变量数据。然而,MATLAB并不支持在变量名中直接使用i来动态生成变量名(如a1,a2等)。要解决这个问题,可以使用cell数组来存储这些数据集,或者通过动态变量名的方式进行调用。这个时候,可以通过自动搜索文件夹中的所有txt文件,并将
- 解决springboot集成minio报错:The following method did not exist: okhttp3.RequestBody.create([BLokhttp3
DN金猿
springboot组件专题springbootjavaspringminio
报错信息:首先是一条警告提醒:2024-07-1816:19:51.789WARN30592---[restartedMain]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.be
- leetcode简单题21 N.104 二叉树的最大深度 rust描述
独好紫罗兰
leetcoderust算法
//[3,9,20,null,null,15,7]3//[1,null,2]2usestd::rc::Rc;usestd::cell::RefCell;//Definitionforabinarytreenode.#[derive(Debug,PartialEq,Eq)]pubstructTreeNode{pubval:i32,publeft:Option>>,pubright:Option>>,
- 导入tensorflow报错Cancelling an overlapped future failed的解决方法
芥子沫
tensorflow人工智能python
环境:Windows11x64Python3.8.0ipython8.12.2报错信息:CancellinganoverlappedfuturefailedPython版本换成Python3.10.7,重新安装tensorflowTensorflow最高支持到Python3.10.7,没有TensorFlow版本与Python3.12、3.13一致,会导致安装失败。└─tensorflowisno
- nrcellcu和nrcelldu_5G学习笔记之UE接入消息详解
weixin_39736547
一点一点,就是进步~~N3IWF:Non3GPPInterWorkingFunctionNRPPa:NRPositioningProtocolAnnexNSCI:NewSecurityContextIndicatorNSSAI:NetworkSliceSelectionAssistanceInformationS-NSSAI:SingleNetworkSliceSelectionAssistanc
- VBA代码自学收集(150例)
qq_38220914
源代码管理
1、Application.CommandBars("WorksheetMenuBar").Enabled=false2、cells(activecell.row,"b").value'活动单元格所在行B列单元格中的值3、SubCheckSheet()'如果当前工作薄中没有名为kk的工作表的话,就增加一张名为kk的工作表,并将其排在工作表从左至右顺序排列的最左边的位置,即排在第一的位置Dimsht
- Qt实现Excle文件合并,并保留原文件单元格样式
Qt云程序员
Qt-功能分享qtexcel开发语言
简介1.QtExcel操作接口,该文章excel接口可实现多个文件进行合并,但是并不保留原有的单元格格式,下面操作将保留原格式进行合并。上代码1.接口函数TableCellAttrreadCellStyle(QAxObject*cell);2.该接口实现读取单元格样式进行解析,转换结构体。3.该结构体内容并不是非常丰富,可以进行扩展,只是实现了一些常用样式。TableCellAttrExcelTh
- 第三章 devextreme-react/scheduler 定制属性学习
yanyu-yaya
react.js学习前端
devextreme-react/scheduler系列文章目录第一章scheduler简单学习第二章scheduler分组groups,资源Resource属性学习文章目录devextreme-react/scheduler系列文章目录前言一、本章使用的属性二、代码template.jsdata.jsstyle.css三.效果四.属性分析resourceCellRenderappointment
- Datagridview指定列进行合并单元格
幽兰的天空
C#编程前端javascript开发语言
privatevoiddataGridView1_CellPainting(objectsender,DataGridViewCellPaintingEventArgse){//仅处理第一列且为数据行if(e.ColumnIndex==0&&e.RowIndex>=0){BrushdatagridBrush=newSolidBrush(dataGridView1.GridColor);SolidB
- iOS自定义collection view的page size(width/height)分页效果
Invisible_He
xcodeiOS开发swiftiOSSwiftUICollection
前言想必大家工作中或多或少会遇到下图样式的UI需求吧像这种cell长度不固定,并且还能实现的分页效果UI还是很常见的实现我们这里实现主要采用collectionview,实现的方式是自定义一个UICollectionViewFlowLayout的子类,在这个类里对cell布局进行排列当出现pagesize小于collectionview的size的时候,可以使用ZLCollectionFreePa
- iOS 关于UICollectionView的headerView的问题、cell间隙问题/pageEnabled显示偏移问题
liyubao160
iOS/ocheaderView
1.collectionView的注意事项:必须注册cell;如果在storyboard添加了可重用标示符,可以不注册.必须实现代理方法.否则会报错.当cell的大小显示不正常的时候,可以试一下在视图加载完成之后,将要出现的时候,设置itemSize;注册cell的方法会跳到dequeueReusableCellWithReuseIdentifier:(缓存池中调用cell),如果缓存池中没有会创
- java导出/解析excel
深圳厨神
javaexcel开发语言
本文有三个方法:1,导出excel模板,只有表头2,导出excel,将数据导出为excel3,解析excelpackagecom.hebi.util;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFCellStyle;importorg.apache.poi.hssf.user
- 解决ImportError: dlopen(/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/
猜不透987872674
pythonopensslpython
__import__("_ssl")EImportError:dlopen(/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-<
- 10 个pygame经典小游戏
Small踢倒coffee_氕氘氚
python自学经验分享笔记
10个具有代表性的高级小游戏思路及简单代码1.2048游戏importrandomdefnew_tile(board):empty_cells=[(i,j)foriinrange(4)forjinrange(4)ifboard[i][j]==0]ifempty_cells:i,j=random.choice(empty_cells)board[i][j]=2ifrandom.random()=sc
- 2020ZJCPC C.Crossword Validation (字典树/字符串哈希)
夜落衣丶
c++算法
原题C.CrosswordValidationAcrosswordisawordpuzzlethatusuallytakestheformofasquareorarectangulargridofwhite-andblack-shadedcells.Thegame'sgoalistofillthewhitecellswithletters,formingwordsorphrases,bysolvi
- npm报错‘proxy‘ config is set properxy. See: ‘npm help config‘
flying_fish79
开发工具npmrust前端
1报错信息npmWARNregistryUnexpectedwarningforhttps://registry.npmjs.org/:MiscellaneousWarningETIMEDOUT:requesttohttps://registry.npmjs.org/vue-reffailed,reason:connectETIMEDOUT104.16.20.35:443npmWARNregist
- 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