我的解决方法是:
不用xwork-2.1.6.jar,换xwork-2.1.2.jar!
JSP页面里引入了struts标签库:<%@taglib prefix="s" uri="/struts-tags"%>
写个简单的form,
<div>
<s:form action="">
<s:textfield name="username" label="用户名"></s:textfield>
<s:textfield name="password" label="密 码"></s:textfield>
<s:submit value="login"></s:submit>
</s:form>
</div>
结果运行后JSP出错:java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils
从字面上看,已经知道原因了:找不到TextUtils这个类导致的。
看一下代码,没错误吧。OK,代码没错,那就是其他代码问题了!对象只有一种可能:引入的jar包出问题了。
网上查查都说是jar包冲突的问题。xwork-2.1.6.jar里已经去掉了TextUtils!!!OK,你不可能去下载这个class手动加进来吧?那就用现成的最安全。目标锁定在xwork-2这个jar包上,那就看看这个jar的版本情况吧。Google一下还是得到答案了,TextUtils存在于之前的版本,为神马高版本的2.1.6去掉了该类那也是很无语的。有人说2.1.8可以,但是还得牵连到json的jar包。如http://blog.csdn.net/foart/article/details/6669836这样解决的:
在下载好的Struts2的lib文件夹里找到了以下jar包:
json-lib-2.x.jar
struts2-json-plugin-2.x.x.jar
struts2-junit-plugin-2.x.x.jar
上面三个包加入项目里之后,再删除jsonplugin-0.3x.jar包
我用的是S2SH框架,struts2-core-2.1.6.jar + xwork-2.1.6.jar。
既然xwork-2.1.6.jar已经去掉了TextUtils,那就不能用这个版本了。
个人觉得删除jsonplugin-0.3x.jar包再换几个jar包,而且是换的版本基本上都是越来越高。这样做安全性不高。如果换个环境,并不能保证即使不会再出现这个问题,也许还有其他问题的存在。当然,接下来我的简单而保守的做法也可能面临一些版本的问题,给大家分享下。
不用xwork-2.1.6.jar,换xwork-2.1.2.jar!