接触Struts2不是很久,想尝试用一下,就在web.xml
welcome-file下设计直接跳转到指定的action
There is no Action mapped for namespace / and action name
直接输action没有问题,配置没有问题
查了一些资料,原来问题出现在
<welcome-file-list>
<welcome-file>login.do</welcome-file>
</welcome-file-list>
tomcat 会去检查有没有在相应的目录下有没有login.do这个文件.
解决方法一:在对应的目录下建立对应的文件 之后再跳转都随你了(测试不带后缀的不可以)
解决方法二:(因上面的解决方法 只在Tomcat服务器下适用,别的不一定适用)
创建一个Filter 过滤访问地址,通用
package com.lc.common;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
public class WelcomeFileFilter implements Filter {
public void destroy() {
indexFile = null;
}
private String indexFile;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
String servletPath = httpServletRequest.getServletPath();
String contextPath = httpServletRequest.getContextPath();
String requestURI = httpServletRequest.getRequestURI();
System.out.println(requestURI);
if (contextPath.equalsIgnoreCase(requestURI) || (contextPath + "/").equalsIgnoreCase(requestURI)) {
String url = "";
if (indexFile.startsWith("/")) {
url = contextPath + indexFile;
} else {
url = contextPath + "/" + indexFile;
}
httpServletResponse.sendRedirect(url);
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
indexFile = "login";
String x = arg0.getInitParameter("indexFile");
if (StringUtils.isNotBlank(x)) {
indexFile = x;
}
}
}
<?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">
<filter>
<filter-name>welcome</filter-name>
<filter-class>com.lc.common.WelcomeFileFilter</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>welcome</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.....</welcome-file>
</welcome-file-list>
</web-app>
这样处理的话 welcome-file-list 对应的file 写什么都无所谓
这里关联到Filter(过滤器) 再学习一下
http://guifan.iteye.com/blog/1631513
参考页面:
http://blog.ziki.cn/284.html
......
--------------------------------------------------------------------------
交流群:81552084
--------------------------------------------------------------------------
分享到:
相关推荐
通过这个新闻管理系统,新手可以学习到如何使用Struts2搭建一个完整的web应用,包括控制器的设计、模型与视图的交互、用户交互处理以及错误处理等方面的知识。同时,这个项目也可以作为进一步学习其他Java web技术,...
Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个入门学习源码包包含了关于Struts2的基础知识、学习笔记以及源码实例,旨在帮助初学者快速理解和...
本资料包包含的是《Struts2深入详解》一书的源码分析,涵盖了从第一章到第五章的内容,并附带了相关的jar包,方便读者结合理论与实践进行学习。 首先,让我们从第一章开始,Struts2的基础知识。这一章通常会介绍...
综上所述,Struts2是一个功能强大的Java Web框架,它通过源码解析,我们可以学习到MVC模式的实现、拦截器的设计、数据校验和异常处理策略,以及视图层的组织方式等多方面的知识。而通过工具的使用,如插件和配置,...
Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它由Apache软件基金会维护。在Java开发中,Struts2框架提供了处理HTTP请求、业务逻辑控制、视图展示等全面的功能,极大地提高了开发效率...
Action是业务逻辑的载体,Result定义了动作执行后的结果导向,Interceptor是Struts2的拦截器机制,用于在Action执行前后进行额外的操作,如日志记录、权限检查等。此外,核心库还包含了配置管理、插件支持、类型转换...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。Struts2的核心是Action,它负责处理来自客户端的请求,并通过业务逻辑层进行数据处理,最后将结果...
在Struts2中,过滤器起到了关键作用,比如`FilterDispatcher`(在Struts2早期版本中)或`StrutsPrepareAndExecuteFilter`(在后期版本中)是Struts2的核心过滤器,它们负责拦截HTTP请求,将其导向Struts2框架进行...
4. **结果类型(Result)**:负责将Action执行的结果导向到相应的视图。 5. **动态方法调用(Dynamic Method Invocation,DMI)**:允许通过URL直接调用Action的方法。 **Hibernate ORM框架:** 1. **对象/关系映射...
在Struts2中,我们需要配置`FilterDispatcher`作为入口点,它负责拦截所有请求并将其导向Struts2的处理流程。 2. **struts.xml** - 这是Struts2的核心配置文件,定义了Action、Result、拦截器等元素。在这里,我们...
《Struts2 in Action》是一本深入探讨Struts2框架的权威著作,中文版的发布使得更多的中国开发者能够轻松理解并掌握这一强大的MVC框架。这本书不仅提供了理论知识,还结合了实际应用,通过SampleApplication的源代码...
Struts2支持多种Result类型,如dispatcher(用于转发到JSP)、stream(用于下载文件)等。 7. **Tiles**:Struts2集成了Tiles框架,用于创建可重用的页面布局和组件,提高开发效率。 8. **Plug-in机制**:Struts2...
在Struts2中,Action的执行结果可以被导向到不同的视图,这其中包括了"redirect"和"redirectAction"两种重定向结果类型。这两种结果类型在实际应用中有着重要的作用,特别是对于处理URL重写、防止重复提交等问题。 ...
Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误处理方式,从而提高用户体验并增强程序的健壮性。 在Struts2...
随着你对Struts2的深入学习,你会了解到更多高级特性,如拦截器、插件、OGNL表达式、国际化、数据校验等,这些都是构建复杂Web应用程序的基础。通过不断实践和学习,你将能够熟练掌握Struts2框架,为Java Web开发...
2. **Result**: 结果类型Result用于将Action的执行结果导向到特定的视图,如JSP、Freemarker模板等。Struts2内置了多种Result类型,如dispatcher(默认,转发到JSP)、stream(流式结果,常用于文件下载)。 3. **...
在实际运行中,用户可以通过搜索框输入关键词,Struts2会将请求转发到搜索Action,该Action执行查询操作并返回结果。在展示层,JSP会根据接收到的数据动态渲染页面,显示搜索结果。用户添加书籍到购物车时,Struts2...
- **web.xml**:这是Servlet容器的部署描述符,配置Struts2 Filter,通常会包含`<filter>`和`<filter-mapping>`标签,用于拦截所有请求并导向Struts2框架进行处理。 - **struts.xml**:这是Struts2的配置文件,...
在本项目中,开发者使用了Hibernate和Struts2这两个核心框架来构建一个基础的登录注册系统,同时还涉及到了分页查询这一重要的数据处理技术。以下是对这些知识点的详细阐述: **1. Hibernate框架:** Hibernate是一...