dwr和三大框架整合后调用不到方法
jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML>
<html>
<head>
<base href="<%=basePath%>">
<title>dsgame</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="css/css.css">
<script src="js/jquery-1.7.2.js"></script>
<script type='text/javascript' src='<%=basePath %>dwr/util.js'></script>
<script type='text/javascript' src='<%=basePath %>dwr/engine.js'></script>
<script type='text/javascript' src='<%=basePath %>dwr/interface/FileuploadUtil.js'></script>
<script type='text/javascript' src='<%=basePath %>dwr/interface/SaveIndexXml.js'></script>
<script type='text/javascript' src='<%=basePath %>dwr/interface/AutoProduct.js'></script>
</head>
<%
String type = request.getParameter("type");
%>
<body>
<div>
<div class="top_tool">
<button class="btn" onclick="createGALLERY()">新建画廊</button>
<button class="btn" onclick="createSHELF()">新建货架</button>
<button class="btn" onclick="createAD()">新建广告</button>
<button class="btn" onclick="createICON()">新建应用</button>
<button class="btn" onclick="save()" style="float:right">保存</button>
<button class="btn" onclick="showBgColor()" style="float:right">背景颜色</button>
</div>
<div>上传图片:<input type="file" class="file" onchange="fileFilter(this)"/>
<button class="btn" onclick="uploadFile(this)">上传</button></div>
<div class="kit">
<div id="editDiv" title="编辑"></div>
<div id="closeDiv" title="删除"></div>
</div>
<div class="main">
</div>
</div>
<div id="autoDiv">
</div>
<div id="editBgColorDiv">
<div id="title">编辑</div>
<div id="bgColor">颜色:<input id="bgColorValue" class="input_text"/></div>
<div style='text-align:right;'><button class="btn" onclick="saveBgColorEdit()">保存</button><button onclick="hideEditDiv()" class="btn">取消</button> </div>
</div>
<div id="editItemDiv">
<div id="title">编辑</div>
<div id="explain">标题说明:<input id="explainValue" class="input_text"/></div>
<div id="productId">产品ID: <input id="productIdValue" class="input_text" onkeyup="autoSuggest(this)"/></div>
<div id="shelfId">货架ID: <input id="shelfIdValue" class="input_text"/><input type="hidden" id="shelfName"/></div>
<div>上传图片:<input type="file" class="file" onchange="fileFilter(this)"/>
<button class="btn" onclick="uploadFile(this)">上传</button></div>
<!-- 就是这个 <button class="btn" onclick="uploadFile(this)">上传</button> -->
<div>预览图片:<img align="top" id="resultImg" onclick="lookRealPic(this)"/></div>
<div style='text-align:right;'><button class="btn" onclick="saveEdit()">保存</button><button onclick="hideEditDiv()" class="btn">取消</button> </div>
</div>
<div id="galleryItemDiv">
<div id="title">编辑</div>
<div id="displayPic"></div>
<div>产品ID: <input id="galleryproductIdValue" class="input_text" onkeyup="autoSuggest(this)"/></div>
<div>上传图片:<input type="file" class="file" onchange="fileFilter(this)"/><button class="btn" onclick="galleryuploadFile(this)">上传</button></div>
<div style='text-align:right;'><button class="btn" onclick="addGalleryItem()">新增</button><button class="btn" onclick="deleteGalleryItem()">删除</button><button class="btn" onclick="saveEdit()">保存</button><button onclick="hideEditDiv()" class="btn">取消</button> </div>
</div>
</body>
</html>
<script>
var ls;
var v;
function autoSuggest(obj){
if(ls == obj&&this.v==obj.value){
return;
}
ls = obj;
v = obj.value;
if(obj&&obj.value&&obj.value!=""){
$("#autoDiv").find("div").remove();
AutoProduct.getProduct(obj.value,function(arr){
if(arr&&arr.length){
for(var i=0;i<arr.length;i++){
var o = arr[i];
$("#autoDiv").append("<div id='"+o.product_id+"'>"+o.product_name+"("+o.product_id+")"+"</div>");
}
$("#autoDiv").css({
"left":$(obj).offset().left+"px",
"top":$(obj).offset().top+$(obj).height()+"px",
"display":"block"
});
$("#autoDiv").find("div").bind({
mouseover:function(){
$(this).css("background-color","#eeeeee");
},
mouseout:function(){
$(this).css("background-color","#ffffff");
},
click:function(){
obj.value = $(this).attr("id");
v = obj.value;
$("#autoDiv").find("div").remove();
$("#autoDiv").css("display","none");
}
});
}
});
}
}
var tempImg = new Array();
var suffix;
var uploadfile;
function fileFilter(obj){
if(!/^.+\.(jpg|jpeg|png)$/i.test(obj.value)){
alert("请选择正确的文件格式(jpg、jpeg、png)");
obj.outerHTML = '<input type="file" class="file" onchange="fileFilter(this)"/>';
}
//后缀
var v = obj.value.split("\\");
suffix = v[v.length-1].split(".")[v[v.length-1].split(".").length-1];
}
function uploadFile(obj){
alert("sssssssss");
//文件对象
var uploadfile = $(obj).prev()[0];
if(!/^.+\.(jpg|jpeg|png)$/i.test(uploadfile.value)){
return;
}
alert("22222222");
FileuploadUtil.uploadFile(uploadfile,suffix,function(data){
alert(data.name);
tempImg.push(data.name+"."+data.suffix);
$("#resultImg").attr("src",data.previewUrl).attr("title","点我看真图");
});
alert("end......");
}
</script>
就是点上传会执行这个function,但是调用不到FileuploadUtil.uploadFile。
dwr.xml配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="FileuploadUtil">
<param name="class" value="cc.dsgame.dwr.FileuploadUtil" />
</create>
<create creator="new" javascript="SaveIndexXml">
<param name="class" value="cc.dsgame.dwr.SaveIndexXml" />
</create>
<create creator="new" javascript="AutoProduct">
<param name="class" value="cc.dsgame.dwr.AutoProduct" />
</create>
<convert converter="bean" match="cc.dsgame.model.Attachment" />
<convert converter="bean" match="cc.dsgame.model.tt_product" />
</allow>
</dwr>
web配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>ActionFilter</filter-name>
<filter-class>com.droxy.filter.ActionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ActionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>encode</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<jsp-config>
<taglib>
<taglib-uri>/auth</taglib-uri>
<taglib-location>/WEB-INF/auth.tld</taglib-location>
</taglib>
</jsp-config>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<!-- 图片的配置 -->
<servlet>
<servlet-name>getVerticalXml</servlet-name>
<servlet-class>cc.dsgame.servlet.GetVerticalXml</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getVerticalXml</servlet-name>
<url-pattern>/getVerticalXml</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>base</servlet-name>
<servlet-class>cc.dsgame.servlet.DsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>base</servlet-name>
<url-pattern>/base</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>productInfoList</servlet-name>
<servlet-class>cc.dsgame.servlet.ProductInfoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>productInfoList</servlet-name>
<url-pattern>/productInfoList</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>