structs与ajax结合的问题
来源:互联网 发布:中序线索树的递归算法 编辑:程序博客网 时间:2024/04/30 12:33
structs2与ajax结合,无论采用$.post还是$.ajax都捕获不到服务器产生的错误,这是structs2内部设计的不是很好,
但是$.ajax捕获错误在servlet能做到。因为
public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context,
ActionMapping mapping) throws ServletException {
Map<String, Object> extraContext = createContextMap(request, response, mapping, context);
// If there was a previous value stack, then create a new copy and pass it in to be used by the new Action
ValueStack stack = (ValueStack) request.getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);
boolean nullStack = stack == null;
if (nullStack) {
ActionContext ctx = ActionContext.getContext();
if (ctx != null) {
stack = ctx.getValueStack();
}
}
if (stack != null) {
extraContext.put(ActionContext.VALUE_STACK, valueStackFactory.createValueStack(stack));
}
String timerKey = "Handling request from Dispatcher";
try {
UtilTimerStack.push(timerKey);
String namespace = mapping.getNamespace();
String name = mapping.getName();
String method = mapping.getMethod();
Configuration config = configurationManager.getConfiguration();
ActionProxy proxy = config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy(
namespace, name, method, extraContext, true, false);
request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, proxy.getInvocation().getStack());
// if the ActionMapping says to go straight to a result, do it!
if (mapping.getResult() != null) {
Result result = mapping.getResult();
result.execute(proxy.getInvocation());
} else {
proxy.execute();
}
// If there was a previous value stack then set it back onto the request
if (!nullStack) {
request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);
}
} catch (ConfigurationException e) {
// WW-2874 Only log error if in devMode
if(devMode) {
String reqStr = request.getRequestURI();
if (request.getQueryString() != null) {
reqStr = reqStr + "?" + request.getQueryString();
}
LOG.error("Could not find action or result\n" + reqStr, e);
}
else {
if (LOG.isWarnEnabled()) {
LOG.warn("Could not find action or result", e);
}
}
sendError(request, response, context, HttpServletResponse.SC_NOT_FOUND, e);//产生错误的模板页面,并返回到客户端
} catch (Exception e) {
sendError(request, response, context, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);//产生错误的模板页面,并返回到客户端
} finally {
UtilTimerStack.pop(timerKey);
}
}
- structs与ajax结合的问题
- structs与ajax结合的问题
- structs与ajax结合的问题
- Spring 与Structs的结合方法
- ajax 结合structs 做的二级联动.在ie7.0和8.0上访问没问题: ----但是在ie6.0上访问出现问题!
- Ajax与Spring的结合
- ajax 与echarts的结合
- servlet与ajax的结合
- $.post与$.ajax 结合struts问题
- jsf与structs的区别
- AspNetPager与ObjectDataSource与Gridview和AJAX.NET结合的有关问题
- AJAX与PHP的结合使用
- Jquery AJAX与.NET结合的例子
- structs2与ajax结合的经验
- Struts2与ajax结合的缺点
- 简单的ajax与layer结合删除
- spring mvc的SimpleFormController与AJAX结合遇到的一些问题
- ajax与spring 结合
- 轻松搞定面试中的二叉树题目
- 【214最长单调递增子序列 NYOJ 二分搜索 和动态】
- MVC设计模式总结
- 启动glance-api报错 cannot import name ceil_shift
- hrbust2090背包(经典。。,想不到就有点难)
- structs与ajax结合的问题
- jQuery.validator.addMethod实例
- ActivityGroup window bad token问题深入分析
- 设计模式研究之——单例模式
- zoj 3594 Sexagenary Cycle(模拟)
- HDU 斜率优化dp 3507 Print Article
- 黑马程序员_IO流(二)
- ABAP 学习之旅(索引篇)
- Hadoop在MapReduce中使用压缩详解