DWR3rc1跟Struts2.1.x配合 上传问题

参考网上设置和dwr3的例子,做一个文件上传的小东西,但是发现有问题

dwr.xml 和web.xml的配置不再多说。

js:

<head>
<script type='text/javascript' src='/sxnicoa/dwr/engine.js'> </script>
<script type='text/javascript' src='/sxnicoa/dwr/util.js'> </script>
<script type='text/javascript' src='/sxnicoa/dwr/interface/DwrUpload.js'></script>
<script type="text/javascript">

function uploadFiles() {
var file = dwr.util.getValue('uploadImage');

DwrUpload.uploadImage(file,function(data) {
dwr.util.setValue('image', data);
});
}

</script>


html:

<table class="plain grey form">
<tr>
<th>Image:</th>
<td><input type="file" id="uploadImage" size="30"/></td>
</tr>
<tr>
<th>File:</th>
<td><input type="file" id="uploadFile" size="30"/></td>
</tr>
<tr>
<th>Color:</th>
<td>#<input type="text" id="color" value="FFFFFF" size="7"/></td>
</tr>
<tr>
<th></th>
<td>
<button onclick="uploadFiles()">Upload</button>
</td>
</tr>
</table>

<img id="image" src="javascript:void(0);"/>


java:

public class DwrUpload {

private static Logger logger = LoggerFactory.getLogger(DwrUpload.class);

public void uploadFile(String uploadFile) {

logger.debug("uploadFile==="+uploadFile);
}

public BufferedImage uploadImage(BufferedImage uploadImage)
{

logger.debug("uploadImage==="+uploadImage);

AffineTransform atx = new AffineTransform();
atx.scale(200d / uploadImage.getWidth(), 200d / uploadImage.getHeight());
// AffineTransformOp.TYPE_BILINEAR is very slow
AffineTransformOp afop = new AffineTransformOp(atx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
uploadImage = afop.filter(uploadImage, null);


return uploadImage;
}

}


如果上传页面是html则上传没问题,即不使用struts2的过滤器,不经过struts2的拦截器,如果上传页面改为jsp,即在struts2的框架内,则提示错误"Failed to find parameter: scriptSessionId"。

问题已解决:需注意的地方是java方法中的参数必须是BufferedImage,InputStream,FileTransfer三种中其中一个,一般推荐使用FileTransfer,可以获取文件名、文件类型、和内置的inputStream。
再有web.xml配置的struts2 filter-mapping不能为/*
可以设置成:

<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.jspa</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值