您的位置:首页 > 大数据 > 人工智能

Failed to load resource: the server responded with a status of 404

2016-12-21 16:16 686 查看
搞来搞去附件下载请求的地址老包404,我用的easyui1.5   引用下载插件

<script type="text/javascript" src="${ctx}/js/fileUploadOver.js"></script>

注意后期版本有所改动,没了

 success: function(data, status)  //服务器成功响应处理函数

                            {

                                $.messager.progress("close");

                                $('#uploadDiv').dialog('close');

                                $.messager.alert("提示",data.msg);

                              //  $('#tt').treegrid('reload');

                            },

                            error: function (data, status, e)//服务器响应失败处理函数

                            {

                                $.messager.progress("close");

                                $('#uploadDiv').dialog('close');

                                $.messager.alert("错误",e);

                            }

                        }

只需要在Jquery.js添加上

 jQuery.extend({  

                handleError: function (s, xhr, status, e) {  

                    if (s.error) {  

                        s.error.call(s.context || s, xhr, status, e);  

                    }  

                    if (s.global) {  

                        (s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]);  

                    }  

                },  

                httpData: function (xhr, type, s) {  

                    var ct = xhr.getResponseHeader("content-type"),  

            xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,  

            data = xml ? xhr.responseXML : xhr.respons
1089e
eText;  

                    if (xml && data.documentElement.tagName == "parsererror")  

                        throw "parsererror";  

                    if (s && s.dataFilter)  

                        data = s.dataFilter(data, type);  

                    if (typeof data === "string") {  

                        if (type == "script")  

                            jQuery.globalEval(data);  

                        if (type == "json")  

                            data = window["eval"]("(" + data + ")");  

                    }  

                    return data;  

                }  

            })  

使用Convention插件,你需要将其JAR文件放到你应用的WEB-INF/lib目录中

配置例子:

<constant name="struts.convention.default.parent.package" value="crud-default"
/>

?<constant name="struts.convention.package.locators" value="web,action" />

?<constant name="struts.convention.package.locators.basePackage" value="com.cngba.gamemag" /> 

<constant name="struts.convention.result.path" value="/WEB-INF/pages" />

<constant name="struts.convention.action.name.separator" value="-" />

1. 默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。如:

Xml代码

<constant name="struts.convention.result.path" value="/WEB-INF/page" />

则将路径配置到了WEB-INF/page 下。

2. 默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。你可以通过设置struts.convention.package.locators属性来修改这个配置。如:

<constant name="struts.convention.package.locators" value="web,action" />

3. 接着,Convention从前一步找到的package以及其子package中寻找 com.opensymphony.xwork2.Action 的实现以及以Action结尾的类:

Java代码

com.example.actions.MainAction

com.example.actions.products.Display (implements com.opensymphony.xwork2.Action)

com.example.struts.company.details.ShowCompanyDetailsAction

4. 命名空间。从定义的.package.locators标示开始到包结束的部分,就是命名空间。举个例子:

Com.ustb.web.user.userAction的命名空间是:”/user”。Com.ustb.web.user.detail.UserAction的命名空间是:”/user/detail”

5. Convention通过如下规则确定URL的具体资源部分:去掉类名的Action部分。然后将将每个分部的首字母转为小写,用’-’分割,你可以设置struts.convention.action.name.separator 如

Xml代码

<constant name="struts.convention.action.name.separator" value="-" />

还是举个例子:

UserAction->user UserDetailAction ->user-detail。结合上面的。对于com.ustb.web.user.detail.UserDetailAction,映射的url就是/WEB-INF/content/user/detail/user-detail.jsp

当然,简单的通过默认的方式来进行配置不能完全满足实际项目的需要。所幸,convention的零配置是非常灵活的。

通过@Action注释

对如下例子:

Java代码

package com.example.web;

import com.opensymphony.xwork2.Action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {

@Action("action1")

public String method1() {

return SUCCESS;

}

@Action("/user/action2")

public String method2() {

return SUCCESS;

}

}

方法名 默认调用路径 默认映射路径
method1 /hello!method1.action . /WEB-INF/content/hello.jsp
method2 /hello!method2.action. /WEB-INF/content/hello.jsp
通过@Action注释后

方法名 @Action注释后调用路径 @Action注释 后映射路径
method1 /action1!method1.action. /WEB-INF/content/action1.jsp
method1 /user/action2!method2.action /WEB-INF/content/user/action2.jsp
404搞来搞去原来是只声明命名空间的情况下,请求指定类的方法的时候需要满足

fiscal/fiscal-message!fiscal.action      ------------------------------@Namespace("/fiscal")   类是  FiscalMessageAction      方法是 pubic void fiscal()

由于未对方法加action注解类要必须按着这种规范。

我的理解是这样的,不对请指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  easyui
相关文章推荐