在做项目时,在判断是否存在一个请求的Action时,就需要先去判断Struts管理的Action名称。
使用过滤器获取这个action的所有名称
private static Map<String, Map<String, ActionConfig>> namespaceActionConfigs = null;//获取所有的Action命名空间
private PrepareOperations prepare;
private ExecuteOperations execute;
public void init(FilterConfig filterConfig) throws ServletException {
InitOperations init = new InitOperations();
try {
FilterHostConfig config = new FilterHostConfig(filterConfig);
init.initLogging(config);
Dispatcher dispatcher = init.initDispatcher(config);
init.initStaticContentLoader(config, dispatcher);
prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
namespaceActionConfigs = dispatcher.getConfigurationManager().getConfiguration().getRuntimeConfiguration().getActionConfigs();
} finally {
init.cleanup();
}
}
再写一个方法去判断这个action的请求是否存在
//判断用户请求的action是否存在 false(肯定)不存在 true不处理(一般来说存在)
public boolean isExsitAction(String namespace, String name){
if(namespaceActionConfigs!=null){
Map<String, ActionConfig> actions = namespaceActionConfigs.get(namespace);
if (actions != null) {
if (actions.get(name) == null) {
return false;
}
}
}
return true;
}
这样就可以在调用的时候去判断了,如果不存在就提前sendRedirect.
String namespace = mapping.getNamespace();
String name = mapping.getName();
分享到:
相关推荐
Struts2 是一个基于MVC 模式的 Web 应用程序框架,它提供了多种方式来获取 Response 对象,以下是四种获得 Response 对象的方法: 方法 1:使用 Struts2 Aware 拦截器 在 Struts2 中,可以通过实现Aware接口来获取...
为Action的属性注入值是Struts2的一个关键特性,使得我们可以方便地从请求参数中获取数据并绑定到Action实例上,以便后续的业务处理。 这个特性主要依赖于Struts2的OGNL(Object-Graph Navigation Language)表达式...
在Struts2框架中,获取页面表单提交的值是一个常见的需求,这涉及到Struts2如何解析请求参数、如何在Action类中访问这些参数以及如何处理复杂的对象模型。以下将详细解析Struits2中获取页面值的方法,包括基本类型...
在Struts2中,由于设计模式的改变,我们不再直接使用Servlet对象,而是通过`ServletActionContext`来获取`ServletContext`。以下是在Struts2中获取相对路径的示例: ```java String upload_filepath = new File...
在Struts2中,经常需要从Action类中获取请求(Request)和响应(Response)对象来处理用户请求和传递数据。本文将详细解释Struts2中获取Request对象的四种不同方式。 1. **Servlet不相关的非IoC取得Request等对象的...
在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...
在Struts2框架中,获取`HttpServletRequest`对象是开发者经常需要进行的操作,因为这个对象包含了HTTP请求的所有相关信息。本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **...
2. **全局变量(Global Variables)**:在Struts2中,全局变量通常是指在struts.xml配置文件中定义的可全局访问的对象,如常量、拦截器栈和结果类型。这些配置可以提高代码的复用性和可维护性。 3. **Action转化...
4. **内置对象获取**:Struts2提供了一系列内置对象,如`ActionContext`、`ValueStack`、`Session`等,开发者可以直接在Action类中使用。例如,`ActionContext`提供了访问请求、会话、上下文等信息的方法;`...
2. 配置Struts2的主配置文件(struts.xml),这是框架运行的基础,定义了Action类、结果类型、拦截器等。 3. 创建一个Action类,这个类是业务逻辑的载体,通常会继承自org.apache.struts2.dispatcher.ng.Execute...
默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。...
Struts2 通过 ValueStack 对象来获取所有相关的值,如请求参数、Action 配置参数、向其他 Action 传递属性值(通过 chain 结果)等等。要获得这些参数值,我们要做的唯一一件事就是在 Action 类中声明与参数同名的...
标题提到的"struts2 json传输对象文档"是指Struts2支持JSON格式的数据传输,使得Action类可以直接返回JSON对象,以便在客户端进行处理。这种功能极大地提高了Web应用的响应速度和用户体验,因为可以避免不必要的页面...
在 Struts2 中,要使用 Session,需要实现 SessionAware 接口,该接口提供了一个 setSession 方法,用于将 Session 对象传递给 Action。在 Login.java 文件中,我们可以看到,Login 类实现了 SessionAware 接口,并...
6. **值栈(Value Stack)**:值栈是Struts2中的一个核心组件,它存储了请求中的所有对象。ActionContext提供了对值栈的访问,使得视图能够方便地获取和展示数据。 7. **Freemarker和Velocity模板**:Struts2支持...
在视图层,Struts1依赖JSP标准机制绑定对象,而Struts2采用ValueStack技术,允许taglib访问值栈中的值,无需在视图和对象之间建立硬绑定,提高了代码复用性。 类型转换方面,Struts1的ActionForm属性通常是字符串,...
整合测试可能会包括检查Action是否能正确地从Spring容器获取依赖,以及在处理请求后是否能正确地返回到Struts2的结果流程。 6. **测试驱动开发(TDD)**:通过这个示例,我们可以理解开发者可能采用了TDD(Test-...
在项目中使用Struts2时,我们需要配置struts2的主配置文件(struts.xml),定义Action、结果类型、拦截器栈等。Action是业务逻辑的入口点,Result表示一个操作完成后转向的页面或结果。拦截器是Struts2的一大特色,...
为了使Action能够访问到HTTP请求(HttpServletRequest)、响应(HttpServletResponse)、会话(HttpSession)等关键对象,Struts2提供了多种获取这些对象的方法。以下将详细介绍如何在Struts2的Action中获取request...