datetimepicker.../>
4---:
使用TILES框架
IfyouusetheTiles2plugin,checkyourtiles.xmlfile(s)toensuretheycontainaDOCTYPE.
DOCTYPEtiles-definitionsPUBLIC"-//ApacheSoftwareFoundation//DTDTilesConfiguration2.0//EN"
"http:
//tiles.apache.org/dtds/tiles-config_2_0.dtd">
5---:
struts2中不支持EL表达式ConvertELexpressionstoOGNL
Struts2.1tagsdonotallowevaluationofJSPELwithintheirattributes.
Instead,Struts2tagsevaluateattributevaluesasOGNL.Allowingboth
expressionlanguageswithinthesameattributeopensmajorsecurity
vulnerabilities.
6---文件上传过程中取不到文件名和文件类型,即都取到NULL
原因:
假如页面中file的name=“a”则我们ACTION中设置StringaContentType,StringaFileName;(此两个其实无所谓,要害是SET方法)
setA(Filefile)(){};setAContentType(Strings){};setAFileName(Stringname){}即格式如下:
setXContentType()setXFileName().X代表你给FILE取的NAME名字
必须和它相同,固定格式
7---严重:
Unabletoparserequest
mons.fileupload.FileUploadBase$SizeLimitExceededException:
therequestwasrejectedbecauseitssize(8523356)exceedstheconfiguredmaximum(2097152)
atmons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:
914)2008-5-2717:
46:
51mons.CommonsLoggerwarn
警告:
Couldnotfindproperty[struts.valueStack]
2008-5-2717:
46:
51mons.CommonsLoggererror
严重:
therequestwasrejectedbecauseitssize(8523356)exceedstheconfiguredmaximum(2097152)
2008-5-2717:
46:
51mons.CommonsLoggerwarn
警告:
Couldnotfindproperty[org.apache.catalina.jsp_file]
原因:
上传文件大小超过预定大小,可以在struts.properties配置文件中设置struts.multipart.maxSize=XXX(XXX为文件大小)
8---配置了文件类型限制后,当传错误类型可以拦截不让用户上传该文件,可是跳转的页面却没有跳转到input配置的错误页面,而是返回
到了success正确页面。
严重:
Content-Typenotallowed:
filedata"upload__5b01657_11a329d4dcf__8000_00000000.tmp"text/plain
《我的打印输出DEBUG语句内容:
File:
null FlieName:
null type:
null》即拦截类型成功了
java.lang.NullPointerException
atjava.io.FileInputStream.(FileInputStream.java:
103)
atcom.study.web.util.FileUploadUtil.uploadFile(FileUploadUtil.java:
36)
atcom.study.web.action.UploadFileAction.execute(UploadFileAction.java:
58)
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)。
。
。
2008-5-2910:
59:
07mons.CommonsLoggerwarn
警告:
Couldnotfindproperty[org.apache.catalina.jsp_file]
2008-5-2910:
59:
07mons.CommonsLoggerwarn
警告:
Couldnotfindproperty[struts]
2008-5-2910:
59:
07mons.CommonsLoggerinfo
信息:
Removingfilefiledata\tmp\upload__5b01657_11a329d4dcf__8000_00000000.tmp
原因及解决办法:
在该文件上传Action中只配置了FileUploadInterceptor后缺少配置了defaultStack拦截器.
在ACTION中配置玩defaultStack拦截器后改错误消失。
9---struts.properties中全局配置文件大小,再使用默认FileUploadInterceptor拦截器时候能实现拦截的功能但是后台出现异常。
严重:
Unabletoparserequest
mons.fileupload.FileUploadBase$SizeLimitExceededException:
therequestwasrejectedbecauseitssize(380)exceedstheconfiguredmaximum(10)
atmons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:
914)
原因:
未知。
将全局配置中的限制大小去掉,再重新在ACTION中覆盖配置FileUploadInterceptor拦截器设置大小和文件类型限制,可消除异常。
10---多文件上传中,其中一个传被限制的文件如限制aplication/msword(即.doc)文件,答应传文本文件。
然而当夹杂在一起传的时候,后台能截获类型错误不可传信息,但是
实际却还是上传成功。
严重:
Content-Typenotallowed:
filedata"upload_4d958287_11a33e76ab9__8000_00000007.tmp"application/msword
fileis:
\tmp\upload_4d958287_11a33e76ab9__8000_00000006.tmp fileName:
project.txt fileType:
text/plain
fileis:
\tmp\upload_4d958287_11a33e76ab9__8000_00000007.tmp fileName:
applicationbase.doc fileType:
application/msword
fileis:
\tmp\upload_4d958287_11a33e76ab9__8000_00000008.tmp fileName:
zhongqi-bug.txt fileType:
text/plain
原因:
忘记了继续ActionSupport类。
继续后异常消失。
11--文件上传异常,不能创建File文件
Cannotcreatetypeclassjava.io.FilefromvalueC:
\DocumentsandSettings\admin\桌面\OrderReporterServiceImp.java-[unknownlocation]
原因:
忘记了在form表单里将enctype设置成文件上传格式:
enctype="multipart/form-data"
12--当使用限制文件类型和大小的时候抛出空指针异常
java.lang.NullPointerException
demo.struts2.action.ValidatFileUploadAction.execute(ValidatFileUploadAction.java:
71)
sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
原因:
在ACTION中配置了fileUpload拦截器后忘记了配置默认拦截器:
defautlStack。
注重当ACTION中配置自己的拦截器后需要显示配置默认
拦截器defaultStack
13--在国际化时候抛空指针异常:
16:
31:
12,812ERROR[jsp]:
253-Servlet.service()forservletjspthrewexception
java.lang.NullPointerException atjava.text.MessageFormat.applyPattern(MessageFormat.java:
414)
atjava.text.MessageFormat.(MessageFormat.java:
350)
atcom.opensymphony.xwork2.DefaultTextProvider.getText(DefaultTextProvider.java:
70)
原因:
忘记了在struts.xml中配置国际化常量,或者在struts.properties中配置全局国际化常量struts.custom.i18n.resources=globeMessage
14--strutsaction的配置文件加载失败:
Unabletoloadconfiguration.-result-file:
/D:
/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:
10:
26
Causedby:
Noresulttypespecifiedforresultnamed'error',perhapstheparentpackagedoesnotspecifytheresulttype?
-result-file:
/D:
/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:
10:
26
atcom.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:
609)
原因:
忘记了继续包struts-default
15--strutsaction配置文件注重事项:
1.别忘记了继续struts-default默认配置包
2.假如配置命名空间,一定要以"/"开始,例