一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <default-action-ref name="index" /> <global-results> <result name="error">/WEB-INF/jsp/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> <action name="index"> <result type="redirectAction"> <param name="actionName">HelloWorld</param> <param name="namespace">/example</param> </result> </action> </package> <include file="example.xml"/> <!-- Add packages here --> </struts>
1, 包配置
<package name="default" namespace="/" extends="struts-default"> </package>
2, name 表示包的名字
3, namespace="/" ;表示访问该包下面的路劲时必须要在路径前加 /xx
也可以使用namespace="/space" 访问时加上/space/xx
<package name="default" extends="struts-default"> <action name="hello" > <result >/login.html</result> </action> </package>
当namespace不存在时如何访问;
xxx/aaa/bbb/hello
aa/hello 都可以访问到
4,extends="struts-default"继承默认的标签
5,Action中的调用;
a; 普通调用
<action name="hello" > <result >/login.html</result> </action>
b,动态调用;
2,3可能会包错:
There is no Action mapped for namespace [/user] and action name [user!add] associated with context p
解决办法;
将DMI打开 <constant name="struts.enable.DynamicMethodInvocation" value="true" />
6,include模块
Struts.xml可以相互引入
<include file="login.xml" /> login,xml的配置与Struts.xml相同
7,Struts中Session会话的使用例子;
保存会话
@Override public String execute() throws Exception { System.out.println(">"+username+"<>"+userpwd+"<"); if ("scott".equals(username) && "tiger".equals(userpwd)) { HttpServletRequest request=(HttpServletRequest) ServletActionContext.getRequest(); HttpSession session=request.getSession(); session.setAttribute("name", username); return "hello"; } else { return "hellow"; } }
获取会话
<%
String name=(String)session.getAttribute("name");
%>
欢迎<a href="login.html"><%=name %>登陆</a>
9,Result的使用
<result type="redirectAction"> 重新请求action
Chain 处理action连接
Dispatcher 处理jsp页面
Redirect重定向
相关推荐
### Struts2 Result 转向到 Action 的深入解析 #### 一、基本概念与应用场景 **Struts2** 是一款流行的 Java Web 开发框架,它支持多种开发模式(如 MVC),并提供了一系列用于简化 Web 应用程序开发的功能。在 ...
在 Struts2 框架中,Redirect 和 Redirect-action 是两个不同的 Result 配置类型。Redirect 配置用于重定向到一个新的 URL,而 Redirect-action 配置用于重定向到一个 Action。 Redirect-action 配置可以省略后缀名...
在本项目总结中,我们将深入探讨Struts2的核心特性、工作原理以及如何在实际项目中应用。 一、Struts2框架基础 1. 动态方法调用(Dynamic Method Invocation,DMI):Struts2允许通过URL直接调用Action类的方法,...
对于源码学习,`com.opensymphony.xwork2.action`和`com.opensymphony.xwork2.interceptor`这两个包下的类是理解Struts2核心机制的关键,尤其是`ActionSupport`、`ActionContext`、`Result`接口和`ResultSupport`类...
### Struts2框架中“No result defined for action and result input”错误解析及解决方法 #### 错误概述 在Struts2框架中开发Web应用程序时,可能会遇到一个名为“No result defined for action and result input...
在Struts2中,Result Type是由`struts-default.xml`配置文件中的`<package>`元素的`defaultResultType`属性指定的,默认情况下,这个值通常是“dispatcher”,意味着Action完成后会使用Dispatcher Result来渲染JSP...
综上所述,`Redirect`类型的`Result`在Struts2框架中扮演着重要角色,它是控制Web应用程序流程,确保用户体验和系统稳定性的有效手段。在实际开发中,开发者需要根据需求选择合适的`Result`类型来达到最佳的效果。
Struts2框架基于MVC设计模式,主要由四部分组成:Action、ActionMapping、Result和Interceptor。Action负责处理用户的请求,ActionMapping定义Action与URL的映射,Result则指定Action执行后的返回结果,Interceptor...
- Struts2的默认表示语言,用于在Action和视图之间传递数据,支持动态属性访问。 7. **插件和扩展** - Struts2支持丰富的插件系统,如Freemarker或Velocity作为视图模板引擎,Struts2-dojo-plugin提供AJAX支持,...
在Struts2中,Result是Action执行后控制流程的重要组件,它定义了Action执行完毕后如何转发或重定向到一个新的页面。"redirectAction"是Struts2中的一种Result类型,专门用于实现HTTP级别的重定向。 重定向是一种...
在Struts2中,Action是业务逻辑的核心组件,而Result是控制流程的关键部分,它定义了Action执行后如何展示结果。Result Type是Result的一种预定义类型,决定了结果如何被处理和展现给用户。在`struts-default.xml`...
通过对Struts2中`Result`与`Type`的理解和运用,可以更加灵活地控制页面的流向和展示形式,从而提高应用程序的可维护性和扩展性。希望本文能帮助读者更好地掌握这些核心概念,并在实际项目开发中发挥出应有的作用。
### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...
在Struts2框架中,Action类是业务逻辑处理的核心组件,它负责接收并处理来自用户的请求。本实例探讨了如何让一个Action类处理多个请求,这在开发中常见于需要集中处理相似请求的情况,可以提高代码复用性和结构的...
6. **表单提交与显示错误**:在JSP页面中,使用Struts2标签库如`<s:form>`和`<s:submit>`创建表单,并通过`action`属性指定验证的Action。如果验证失败,Struts2会自动显示错误消息。例如: ```jsp <s:form action...
在Struts2中,Action是业务逻辑的核心,而Result则是Action执行后的响应方式。`Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理...
`<package>`、`<action>`和`<result>`标签定义了Action和结果页面的映射。命名空间(namespace)用于组织Action,比如`/`、`/xxx`或`/xxx/yyy`,影响Action的访问路径。 4. **执行流程**:当用户发起请求时,Tomcat...
总之,Struts2作为一款成熟的Web框架,提供了许多强大的特性,如Action、Result、OGNL、Tags以及灵活的配置和命名空间管理。熟练掌握这些核心概念,有助于开发者构建高效、稳定的Java web应用。
总结来说,Struts2 Action的参数包括`name`、`class`、`namespace`、`method`等,它们共同构成了Action的完整配置,使我们能够灵活地定义和控制Action的行为。同时,通过`method`属性和DMI,我们可以实现一个类中多...