当前位置:首页 » 操作系统 » xworkcore源码

xworkcore源码

发布时间: 2022-04-25 17:56:20

‘壹’ struts2 如何升级

我前几天刚做的2.3.1.2升级到2.3.15.1GA
如果你的应用没有修改过struts2的源码,那升级很简单
增加3个jar
struts2一个,xwork一个,把原版本的替换掉,另外增加一个common-lang3的包
其他什么都不用动。

web.xml struts.xml没有变化,只是15版本里增加了一些debug信息,如果你不想看,就把struts.xml里devmode改成false

‘贰’ 在Eclipse中如何关联源代码

可在随便一个类中写上ActionSupport,先按下Ctrl键,再将光标移到要查看的类(ActionSupport)上并点击,此时会跳到如下界面:

点击Attach Source…(黏贴源码),会弹出如下对话框,并在对话框中选中External location(外部位置):

这里我要导入的是xwork-core-2.3.24.jar的源码,因为ActionSupport这个类就在这个Jar包中。我们以普通文件夹的方式打开xwork-core-2.3.24.jar的源码。

点击OK即可。

‘叁’ 如何将 struts2 官方 例子导入Myeclipse

Unable to load。。。说明你的项目没有发布好,你把那些替换后,在没有错误的情况下,重新发布一遍。报的错就是在tomcat的WEB-INF/下不能加载那些jar包,如果你的jar包对着,你就重新发布你的项目,要不然就是你的jar看对不对

‘肆’ struts2.3.4.1 xwork-core为什么关联不上源码

也是相对应的。那就是xwork-core-2.3.4.jar 你难道没从官网上下载?xwork的jar包都在Struts里了,xwork也没有了,只有Struts2

‘伍’ jquery.post("url",{},function(data),'json');里面的data如何用java操作

1、引入包(本文中的包全部引自struts-2.1.8.1\lib):

struts2-json-plugin-2.1.8.1.jar
json-lib-2.1.jar
commons-collections-3.2.jar
commons-beanutils-1.7.0.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
ezmorph-1.0.3.jar
这7个包是返回json形式的数据必须的。因为json大量引用了Apache commons的包,所以要加入4个,commons包,除了commons的包外,还需要引入一个 ezmorph的包。最后加入struts2必须的6个包:

struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
ognl-2.7.3.jar
freemarker-2.3.15.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
2、后台:

1) Userinfo实体类代码
public class UserInfo implements Serializable {
private int userId;
private String userName;
private String password;
get set方法略
}

2) Action类
public class TestAction extends ActionSupport {
private String message; //使用json返回单个值
private UserInfo userInfo; //使用json返回对象
private List userInfosList; //使用josn返回List对象
get set方法略
/*返回单个值*/
public String returnMsg(){
this.message = "成功返回单个值";
return SUCCESS;
}
/*返回UserInfo对象*/
public String returnUser(){
userInfo = new UserInfo();
userInfo.setUserId(10000);
userInfo.setUserName("刘栋");
userInfo.setPassword("123456");
return SUCCESS;
}
/*返回List对象*/
public String returnList(){
userInfosList = new ArrayList<UserInfo>();
UserInfo u1 = new UserInfo();
u1.setUserId(10000);
u1.setUserName("张三");
u1.setPassword("111111");
UserInfo u2 = new UserInfo();
u2.setUserId(10001);
u2.setUserName("李四");
u2.setPassword("222222");
userInfosList.add(u1);
userInfosList.add(u2);
return SUCCESS;
}
}

3) struts.xml(必须继承json-default、json-default继承自struts-default)
<package name="default" namespace="/json" extends="json-default">
<action name="returnMsg" class="com.testAction " method="returnMsg">
<result name="success" type="json">
<param name="root">validate</param>
</result>
</action>
<action name="returnUser "
class="com.testAction " method="returnUser ">
<result name="success" type="json">
<param name="includeProperties">
userInfo\.userId,userInfo\.userName,userInfo\.password
</param>
</result>
</action>
<action name="returnList" class="com.testAction "
method="returnList">
<result name="success" type="json">
<param name="includeProperties">
userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password
</param>
</result>
</action>
</package>

3、前台:

1) 页面引入jquery-1.4.2.js
2) 代码如下:
<script language="javascript">
function getMsg(){
$.ajax({
url:'json/returnMsg.action',
type:'post',
dataType:'json',
success:function(data){
$("#result").html(data.message);
}
});
}

function getUser(){
$("# result ").html("");
$.ajax({
url:'json/returnUser.action',
type:'post',
dataType:'json',
success:function(data){
$("#result").append("用户ID:"+data.userInfo.userId+"")
.append("用户名:"+data.userInfo.userName+"")
.append("密码:"+data.userInfo.password+"");
}
});
}

function getUserList(){
$("# result ").html("");
$.ajax({
url:'json/returnList.action',
type:'post',
dataType:'json',
success:function(data){
$.each(data.userInfosList,function(i,value){
$("#result").append("第"+(i+1)+"个用户")
.append("用户名:"+value.userName+"")
.append("密码:"+value.password+"");
}
}
});
}
</script>
<div id="result"></div>
<input type="button" value="获得单个消息" onclick="getMsg()"/>
<input type="button" value="获得用户信息" onclick="getUser()"/>
<input type="button" value="获得用户列表" onclick="getUserList()"/>

4、只要继承extends="json-default",result type设置成json之后,容器会把action的属性自动封装到一个json对象中(json拦截器来做),然后调用ajax的callback方法. 返回json数据

5、includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。

如:输出UserInfo的所有属性及UserInfo的userName属性

<result type="json">
<param name="includeProperties"> userInfo.*,
userInfo \. userName </param>
</result>

6、excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties

7、输出一个JSON List列表

<result name="success" type="json">
<param name="includeProperties">
userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password
</param>
</result>

其中userInfosList是action中的一个List类型的属性,userInfosList \[\d+\]\. userName表示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)。

8、为什么要用includeProperties或excludeProperties 参数:主要是为了过滤掉接口,pojo的set、list、其它对象等不需要的数据防止循环取其它关联对象或找不到接口。如果不配置,默认是处理 action中的所有属性,如果action中有接口注入,json拦截器可能找不到接口而返回不了结果,还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,如果其它对象有list、set,其返回结果相当庞大,有可能是死循环而无法返回 。如果不用<param name="includeProperties">或其他方式进行json数据过滤,通过debug你会发现前台返回的json字符串,是把 action中的所有属性全部转化成json字符串返回给客户端(包括service接口、pojo所有属性及有关联的pojo。有时候根本返回不了结果,也不报错,后台执行了,但前台执行不到callback function,这主要是因为找不到接口或者关联的pojo太多,造成死循环),一般情况下用的最多的就是root、 includeProperties 和excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。

9、总结: action中避免使用get开头的action方法,去掉action中的接口的get方法 为json类型的result配置includeProperties, excludeProperties等参数.

‘陆’ Map request=(Map)ActionContext.getContext().get("request");

我也正好在看这个,把我刚理解的给你说下吧,不一定对。
Map request=(Map)ActionContext.getContext().get("request");
Map request // 声明一个名字为request的Map对象(这个名字不是request也可以)
然后对request进行实例化,但是因为 ActionContext.getContext().get("request");不是Map类型的
所以前面需要加“(Map)”进行强制转换。
“ActionContext”是“xwork-core-2.2.3.jar”(反正就是Xwork了 也许咱们的版本不一样,有兴趣的话你可以去了解一下Xwork)下面的“com.opensymphony.xwork2.ActionContext;”包,
后面的.getContext().get("request");就都是ActionContext里面的方法(函数)了。
注意的是,“get("request");”括号里面的request不能变,这个request不是你前面声明的request对象,具体了解可以去上面说的包下面看源码,
本来想给你大概说下ActionContext的,但是我这代码关联不上,你自己去看吧。
据体用法的话,既然已经有request这个对象了,比如你可以在JSP页面中加
<%= request.getAttribute("list") %>看看效果。
或者假如你要希望数据库写数据,要用到”list“那么可以调用这个action中的这个reuest,
例如 Map m = action.request;
最后,就像J2SE中的Main()方法一样,这都是固定的,记住就可以了。至于用法那就多种多样,光说具体用法那就说死了,但事实是很灵活的东西,看需求吧。

两年后再补充一点吧,ActionContext对象里面封装了Action用到的一些数据。另外struts2把我们的request对象做了一些修改,重新封装成它自己需要的并放在了ActionContext对象中。

‘柒’ java的扩展jar包有哪些

jar包 用途
axis.jar SOAP引擎包
commons-discovery-0.2.jar 用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.
jaxrpc.jar Axis运行所需要的组件包
saaj.jar 创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法.
wsdl4j-1.5.1.jar Axis运行所需要的组件包
activation.jar JAF框架的jar包
annotations-api.jar 使用注解所需jar
ant.jar 用于自动化调用程序完成项目的编译,打包,测试等
aopalliance-1.0.jar 支持Spring AOP
asm-2.2.3.jar ASM字节码库
asm-commons-2.2.3.jar ASM字节码库
asm-util-2.2.3.jar Java字节码操纵和分析框架
aspectjrt.jar 处理事务和AOP所需的包
aspectjweaver.jar 处理事务和AOP所需的包
axiom-api-1.2.7.jar Axis 对象模型
axiom-impl-1.2.7.jar Axis 对象模型
bcprov-jdk15-140.jar 基于java1.5 的加密算法实现
bfmclientmodel.jar 使用WebSphere所需jar包
bpcclientcore.jar 使用WebSphere所需jar包
bpe137650.jar 提供远程访问BPE容器的实现。
bsh-2.0b4.jar 解决负载逻辑运算
c3p0-0.9.0.jar 开放源代码的JDBC连接池
cglib-nodep-2.1_3.jar Spring中自动代理所需jar包
cobertura.jar 测量测试覆盖率
commons-beanutils-1.7.0.jar 动态的获取/设值Java Bean的属性
commons-chain-1.1.jar 实现责任链设计模式的Java 类库
commons-codec-1.3.jar 用来处理常用的编码方法的工具类包,例如DES、SHA1、MD5、Base64等等
commons-collections-3.1.jar 对标准java Collection的扩展
commons-collections.jar 对标准java Collection的扩展
commons-digester-1.8.jar 用于处理struts-config.xml配置文件
commons-fileupload-1.1.1.jar struts上传文件
commons-httpclient-3.1.jar 用来简化HTTP客户端与服务器端进行各种通信编程实现
commons-io-1.1.jar 针对java.io.InputStream和Reader进行了扩展
commons-lang-2.4.jar 对java.lang.*的扩展
commons-logging-1.1.1.jar 日志包
commons-pool-1.3.jar 实现对象池化框架
commons-validator-1.3.1.jar 用来把验证规则程序提取出来,以供重复使用
db2jcc.jar java连接DB2所需jar
db2jcc_license_cu.jar java连接DB2所需jar
dom4j-1.6.1.jar 解析XML
ehcache-1.2.4.jar hibernate的二级缓存如果用ehcache的时候需要此jar包
emf.jar 基于Eclipse的模型框架
ezmorph-1.0.6.jar 使用JSON所需的jar包
FastInfoset-1.2.2.jar 使用WebService所需的jar包
freemarker-2.3.8.jar Strus2支持的一种表现层框架
geronimo-activation_1.1_spec-1.0.2.jar Apache Geronimo所带jar包,
geronimo-annotation_1.0_spec-1.1.1.jar Apache Geronimo所带jar包
geronimo-javamail_1.4_spec-1.3.jar Apache Geronimo所带jar包
geronimo-jaxws_2.1_spec-1.0.jar Apache Geronimo所带jar包
geronimo-jms_1.1_spec-1.1.1.jar Apache Geronimo所带jar包
geronimo-servlet_2.5_spec-1.2.jar Apache Geronimo所带jar包
geronimo-stax-api_1.0_spec-1.0.1.jar Apache Geronimo所带jar包
hibernate3.jar Hibernate3的核心jar包
htmclientmodel.jar 使用WebSphere所需jar包
jakarta-oro.jar 一套文本处理工具,提供per15.0兼容的表达式,AWK-like表达式,Glob表达式。
javassist.jar Javassist 字节码解释器
jaxb-api-2.1.jar 使用WebService所需的jar包
jaxb-impl-2.1.7.jar 使用CXF所需jar包
jaxb-xjc-2.1.7.jar 使用CXF所需jar包
jaxen-1.1.1.jar 解析XML
jcifs-1.2.22.jar 实现单点登陆
jdom2-1.0.jar 解析XML
jdom-1.0.jar 解析XML
jettison-1.0.1.jar 使用CXF所需jar包
jetty-6.1.9.jar Jetty Http服务器jar
jetty-util-6.1.9.jar Jetty Http服务器jar
jra-1.0-alpha-4.jar 使用CXF所需jar包
js-1.6R7.jar 使用CXF所需jar包
json-lib-2.2.3-jdk13.jar 使用JSON所需的jar包
jsonplugin-0.25.jar strus2的JSON插件
jsr311-api-0.8.jar 使用CXF所需jar包
jstl.jar JSTL标签库
jta.jar 标准的 JAVA 事务处理接口
junit.jar 用于单元测试
jxl.jar 通过java操作excel表格的工具类库
ldap.jar JNDI目录服务和LDAO服务器所需的jar
ldapbp.jar JNDI目录服务和LDAO服务器所需的jar
log4j-1.2.15.jar 提供日志功能
mail.jar java发送邮件jar包
neethi-2.0.4.jar 使用CXF所需jar包
odmg-3.0.jar ODMG是一个ORM的规范,Hibernate实现了ODMG规范,这是一个核心的库
ognl-2.6.11.jar struts2中OGNL语言
ojdbc14.jar Oracle数据库驱动包
opensaml-1.1.jar 使用CXF所需jar包
oro-2.0.8.jar Validator框架所需的jar包
oscache-2.1.jar Java 对象的缓存工具
poi-3.1-FINAL-20080629.jar 操作exce所需jar包
poi-contrib-3.1-FINAL-20080629.jar 操作exce所需jar包
poi-ooxml-3.6-20091214.jar 提供对office的word、excel、visio及ppt的操作
poi-ooxml-schemas-3.6-20091214.jar 提供对office的word、excel、visio及ppt的操作
poi-scratchpad-3.1-FINAL-20080629.jar 提供对office的word、excel、visio及ppt的操作
processCommon.jar IBM WebSphere 运行所需jar
ProcessCommonLibrary.jar IBM WebSphere 运行所需jar
processIdentity.jar IBM WebSphere 运行所需jar
ProcessInformation.jar 进程监视软件包
proxool-0.9.1.jar 数据库连接池
proxool-cglib.jar 数据库连接池
quartz-1.6.0.jar 开源作业调度框架
saaj-api-1.3.jar 使用axis所需的jar

saaj-impl-1.3.2.jar 使用axis所需的jar
serializer-2.7.1.jar XML序列化
slf4j-jdk14-1.5.6.jar 整合各种日志框架的工具
spring208.jar spring核心框架
spring-ldap-1.2-RC1.jar spring下LDAP
spring-mock.jar spring的测试框架
standard.jar 使用JSTL标签库所需的jar
stax-api-1.0.1.jar 解析XML
struts2-core-2.0.14.jar struts2核心jar
struts2-spring-plugin-2.0.6.jar struts2整合Spring所需jar
taglibs-datetime.jar Apache开源组织提供标签库,用于格式化日期。
taglibs-mailer.jar 用于发送邮件
taglibs-string.jar Apache开源组织提供标签库,用于对String的操作。
task137650.jar Portal技术在SOA系统集成应用中实现所需的jar
utility.jar Apache开源组织提供标签库
velocity-1.5.jar 一个免费的开源模板框架
wsdl4j-1.6.2.jar 用来解析服务的WSDl文件
wss4j-1.5.4.jar 创建CXF所需jar
wstx-asl-3.2.6.jar 创建CXF所需jar
xbean-spring-2.8.jar 使用xfire所需jar
xerces-2.6.2.jar XML解析器
xfire-all-1.2.6.jar 用于实现WebService
XmlSchema-1.1.jar 使用xfire所需jar
xwork-2.0.7.jar WebWork核心jar
这只是一部分,还有很多。

‘捌’ eclipse 单击某个 类-右键- 查看声明() Open Declaration 只能看到一些绿色的字。怎么办我想看源代码

你可以在页面上按住Ctrl键,然后把鼠标移到那个类名上,会出来超链接的,再点进去就行了
那就说明你的jdk装的时候没有把原代码放进去。你看下jdk目录下的src目录里面有没有

‘玖’ struts2问题 /lib/struts2-core-2.0.14.jar!/struts-default.xml:30:72

重新 安装一下tomcat 看了一下你的源代码,results 标签里是name属性不是type属性
action中要提供对应的getter setter方法才可以自动填充属性。
导致那个异常的原因还是tomcat的问题 用我的绿色版就ok了

热点内容
nginx怎么访问php 发布:2024-11-18 16:22:55 浏览:303
蚂蚁外快赚钱脚本 发布:2024-11-18 16:21:52 浏览:178
cnc编程培训学习 发布:2024-11-18 16:16:33 浏览:405
android查看工具 发布:2024-11-18 16:03:46 浏览:893
目前安卓11如何安装 发布:2024-11-18 15:55:06 浏览:236
安卓结构光对比苹果哪个快 发布:2024-11-18 15:50:03 浏览:930
天天酷跑3v3挂机脚本 发布:2024-11-18 15:43:02 浏览:461
pythonif字符串不等于 发布:2024-11-18 15:32:34 浏览:435
vr上用什么存储芯片 发布:2024-11-18 14:57:39 浏览:618
服务器如何查原厂件和拆机件 发布:2024-11-18 14:54:18 浏览:358