struts2上传图片超过大小给出错误提示
今天碰到上传图片太大,上传不上去返回input视图的界面,回显的错误信息却是乱码,整了好久才整出来,在这里做个记录,方便自己以后查阅,也希望能给遇到这种情况的朋友点指示,呵呵!
首先,在struts.xml里新增的配置, <!-- 指定显示的错误信息的编码格式,注意这个编码应该跟你的回显的页面的格式是一致的 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 将错误消息转换成中文的文件,也称为国际化.我就直接放置在src目录下所以value不带包名 --> <constant name="struts.custom.i18n.resources" value="messages_zh_CN" /> <!-- 扩大上传文件的大小 ,这里的配置是控制整个表单中上传的文件大小-> <constant name="struts.multipart.maxSize" value="104557600" />
messages_zh_CN.properties文件的内容如下: struts.messages.error.content.type.not.allowed=\不\支\持\上\传\该\类\型\的\文\件 struts.messages.error.file.too.large=\上\传\图\片\失\败\:\图\片\太\大 struts.messages.error.uploading=\上\传\文\件\时\发\生\错\误 对应的value和key是: struts.messages.error.content.type.not.allowed=不支持上传该类型的文件 struts.messages.error.file.too.large=上传图片失败:图片太大 struts.messages.error.uploading=上传文件时发生错误
其次,struts.xml的action里应该配置对上传文件的类型、大小的拦截 <action name="add" class="com.silon.web.struts.action.PicAction" method="add"> <!-- 拦截图片上传类型 --> <interceptor-ref name="fileUpload"> <param name="allowedTypes"> image/bmp,image/png,image/gif,image/jpeg,image/jpg ,image/x-png, image/pjpeg </param> <!-- 这里是对单个上传文件大小的限制 --> <param name="maximumSize">102400</param> </interceptor-ref> <interceptor-ref name="defaultStack" /> <result name="input">/pages/pic/picUpload/addUI.jsp</result> </action>
最后,回显页面addUI.jsp里应该有显示错误信息的语句, <strong> <FONT color="red"> <s:fielderror /> </FONT> </strong> 错误均放置在filederror里,如果有的话就可以通过struts标签将其打印出来了