java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
上网搜了一下,主要是因为与struts2拦截器的拦截发生冲突引起的原因:
Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,而struts2的filter拦截了上传文件的动作,拦截器代码是这样写的:
Java代码
//org.apache.struts2.dispatcher.Dispatcher.java
public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
// don't wrap more than once
if (request instanceof StrutsRequestWrapper) {
return request;
}
String content_type = request.getContentType();
if (content_type != null && content_type.indexOf("multipart/form-data") != -1) {
MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);
request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext));
} else {
request = new StrutsRequestWrapper(request);
}
return request;
}
注意MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);这句是上传文件时拦截器实现所需要的,出错的原因是找不到MultiPartRequest.class的实现类.这个类在上传框架jar文件中.这是文件上传fileupload解析器。
因此,如果需要使用Struts2的文件上传功能,则需要在web应用中增加两个JAR文件,即commons-io-1.4.jar和commons-fileupload-1.2.1.jar。将这个包或是包的最新版本放在工程的lib目录下,即解决以上异常问题,成功实现文件的上传。
上传图片时弹出完全警告:
Java代码
Security error. You probably don't have enough permissions to upload. Please check your server
struts2对request进行了封装,所以当fck的request.getinputStream的时候就会出错.修改的方法就是对filtermapping的路径进行修改。
解决方法如下:
将下面代码中的“/*”
Java代码
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
改为:“*.action”。
另外,jsp页面上面用到了struts2的tag,那么就要增加一个*.jsp的url-pattern。
如下:
Java代码
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
如果你用到struts2的datetimepicker标签发现他不能用了
你查看源代码的时候会发现有如下代码
<link rel="stylesheet" href="/para/struts/xhtml/styles.css" type="text/css"/>
<script language="JavaScript" type="text/javascript">
// Dojo configuration
djConfig = {
baseRelativePath: "/para/struts/dojo",
isDebug: false,
bindEncoding: "utf-8",
debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
};
</script>
<script language="JavaScript" type="text/javascript"
src="/para/struts/dojo/dojo.js"></script>
<script language="JavaScript" type="text/javascript"
src="/para/struts/simple/dojoRequire.js"></script>
这时加上以下过滤后问题解决
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
当然要用datetimepicker标签在<head>中还要加入 <s:head theme="ajax"/>
二 Struts2 + Dojo
Struts2部分更简单了。虽然Struts2不直接支持FCKeditor,但直接Dojo,而且个人更喜欢这种简洁的风格,我用的是Struts2.0.11版本进行测试,使用时,只要配置两个地方
1. 在HTML<head />标签之间,加上
Html代码
<s:head theme="ajax"/>
2. 将textarea加上主题 Html代码
<s:textarea theme="ajax" />
分享到:
相关推荐
服务器端处理完图片上传后,会返回一个响应,告知FCKeditor上传的结果。这个响应可以是JSON格式或其他结构化的数据,包含上传成功或失败的信息,以及新图片的URL。FCKeditor根据这个响应更新编辑器中的图片列表,...
在探讨“fckeditor 2.5 上传图片会自动改名”这一问题时,我们首先需要理解FCKeditor(现在通常被称为CKEditor)的基本概念及其功能。FCKeditor是一款广泛应用于网页开发中的富文本编辑器,它允许用户在网页上进行...
这个插件的出现使得用户可以直接在编辑器内上传图片到服务器,无需离开编辑界面,极大地提升了工作效率。插件作者对原有的功能进行了升级和集成,确保其与FCKeditor无缝配合,提供更顺畅的用户体验。 在实际使用中...
FCKeditor2.6 上传图片报错解决方案 用FCKeditor上传图片时出现XML request error:OK(200)错误。终结解决方案。 替换fckeditor\editor\filemanager\browser\default\js下面的fckxml.js
这图片上传为定宽,定高上传。修改文件径fckeditor--ditor--dialog--fck_image中的fck_image.js、fckconfig.js等等花时间琢磨一下. 其中还有我自己改写的公共类,带"image"标识的文件,希望大家都详细看看,改过的...
在JSP(JavaServer Pages)环境下,开发者经常使用FCKeditor来实现图文混排,特别是需要用户能够上传图片到服务器的场景。本文将深入探讨如何配置FCKeditor以实现JSP页面的图片上传功能。 首先,我们需要了解...
"jsp版fckeditor 工程源代码(可上传图片)" 这个标题表明我们正在处理一个基于JavaServer Pages (JSP) 的项目,它使用了FCKeditor,这是一个知名的富文本编辑器,特别是对于网页内容的编辑和管理。此工程源代码的亮点...
《fckeditor集成远程图片上传插件v3.0详解》 在互联网内容创作中,编辑器扮演着至关重要的角色,而FCKeditor是一款广受欢迎的开源富文本编辑器,它为用户提供了类似Microsoft Word的在线编辑体验。本文将详细介绍...
**Fckeditor可上传图片** Fckeditor是一款开源的Web富文本编辑器,它为用户提供了一种在网页上编辑内容的强大工具,支持多种格式的文本输入,包括HTML、CSS、JavaScript等。"可上传图片"这一特性使得用户能够在编辑...
它提供了丰富的功能,如文本格式化、图片上传、链接创建等。然而,一个常见的问题是在使用FCKeditor时,如果用户复制并粘贴了包含外部图片的网页内容,这些图片通常会引用原始源站的URL,而不是保存在本地服务器上。...
**FCKeditor控件详解:上传文本、图片与保持原格式** FCKeditor是一款功能强大的网页文本编辑器,它允许用户在网页上编辑内容时,享受类似Microsoft Word的富文本编辑体验。这款编辑器广泛应用于内容管理系统(CMS...
总的来说,"FCKeditor.Net上传图片加水印"是一个涉及前后端协同工作的过程,需要对FCKeditor.Net的API、图片处理技术和Web安全有深入理解。通过这样的功能,不仅可以提升网站的内容质量,还可以为用户提供更丰富的...
### fckeditor上传突破详解 #### 一、FCKEditor简介 FCKEditor是一款非常流行的开源富文本编辑器,被广泛应用于各种网站系统中。它能够为用户提供强大的编辑功能,包括但不限于文字格式设置、图片上传、链接插入等...
当用户在FCKeditor中选择上传图片时,FCKeditor会向指定的`FileBrowserUploadUrl`发起POST请求,服务器端的Servlet接收到请求后,读取上传的文件并保存到服务器的特定目录。 **安全与优化** 在实际应用中,需要考虑...
"在Lotus中嵌入Fckeditor上传代码"这个主题涉及到在Lotus Notes应用中集成FCKeditor,一个流行的开源富文本编辑器,以实现更加美观且功能强大的附件上传功能。FCKeditor以其易于使用和高度自定义的特性,被广泛用于...
然而,原版的FCKeditor并不支持多文件批量上传,这对于需要处理大量图片或其他文件的用户来说,是一个明显的短板。本文将详细讲解如何为FCKeditor添加多文件批量上传组件,以实现多图上传的功能。 首先,我们需要...
以下是关于FCKEditor上传方法的详细说明: 1. **表单提交上传** 在FCKEditor 2.2版本中,文件上传通常通过HTML表单实现。例如: ```html ...
在使用FCKeditor上传图片时,如果没有正确配置Action,Struts2可能无法识别或处理上传请求。因此,你需要在`struts.xml`文件中为FCKeditor的上传操作创建一个专门的Action,并设置相应的接收路径。 2. **文件上传...
在FCKeditor中,远程图片上传是指用户在编辑文章时,可以直接输入一个远程图片的URL,编辑器会自动尝试将该图片抓取到本地服务器,然后插入到文章中。这样做的好处是用户可以快速引用网络上的图片资源,同时避免了因...