一、静态的ActionForward不能更改属性:
struts-config.xml文件在服务器启动的时候就被加载进去,其值不能动态修改。
<forward name="success" path="/convertResult.jsp"></forward>
以上在配置文件中已经配置,现在在action中:
ActionForward forward = mapping.findForward("success");
forward.setRedirect(true);
return forward;
由于配置已经在配置文件中生效,不能在这里改变已有forward对象的属性。如果需要动态更改,应该采用动态ActionForward,如下:
在配置文件中不配置forward标签,而是在action中新建一个ActionForward,这里是可以进行属性设置的
ActionForward forward = new AcitonForward("/result.jsp");
forward.setRedirect(true);
return forward;
上面新建了一个actionForward,并动态设置为重定向。。
二、forward可接收参数
利用第一点讲到的,我们可以在forward的时候添加参数
ActionForward forward = mapping.findForward("success");
String path = forward.getPath();
boolean isQuery = (path.indexOf("?")>=0);
if(isQuery){
path = path + "&display=view";
}else{
path = path + "?display=view";
}
return mapping.findForward(path.toString());
上面操作在原来的path基础上添加参数并转发。。
三、forward与redirect
<forward name="success" path="/convertResult.jsp" redirect="true"></forward>
上面使用了redirect="true"表示进行转发,这种转发不进行请求的转发。在目标页面中不能通过getParameter或getAttribute得到参数值。
另外它们在视图上的不同是:forward进行的转发看不到目标页面,即在IE地址栏中我们只看到:http://...8080../**.do
而redirect转发则是这样。。http://...8080../convertResult.jsp
四、全局转发与局部转发
如果全局转发与局部转发对应的name相同那么先找对应的局部转发,如果找不到则继续找全局转发。
分享到:
相关推荐
值得注意的是,在Struts 1.1中,所有与forward相关的属性都是在`ForwardConfig`超类中定义的。 #### 三、ActionForward的应用场景 1. **标准流程控制**:最常见的应用场景是在一个Action执行完毕后,根据特定的...
"工具" 标签可能指的是开发者可能会使用的一些辅助工具或库,如 IDE 插件、调试器或代码分析工具,这些工具可以帮助理解和调试 `ActionForward` 相关的问题。 在压缩包 `struts_actionforward` 中,可能包含了 ...
在探讨“关于action不能用forward的问题”这一主题时,我们主要关注的是在Struts2框架中如何正确地使用forward机制来实现页面跳转,并解决在实际应用过程中遇到的相关问题。 ### Struts2框架简介 Struts2是基于MVC...
这个压缩包文件"struts_actionForward"显然与Struts框架中的ActionForward概念有关,它是Struts处理请求转发的重要组成部分。 在Struts框架中,Action是业务逻辑的核心,它接收来自用户请求,处理数据,并根据业务...
这些操作通常通过返回一个`ActionForward`对象来实现,该对象包含了跳转目标的信息,如目标资源的路径、是否进行重定向等。 #### `ActionForward`类:控制流程的逻辑抽象 `ActionForward`类在Struts框架中用于表示...
Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动态的网页,返回给客户。
`ActionMapping`用于定义`Action`与特定URL的映射关系,以及相关的`ActionForm`和`ActionForward`信息。它是Struts配置文件中的核心元素,通过它,`ActionServlet`能够正确地解析请求,并将其路由到正确的`Action`...
9. **ActionForward和Redirect问题**:ActionForward用于页面重定向,而Redirect则会触发一个新的HTTP请求。理解两者的区别,避免在不需要新请求时使用Redirect。 10. **Session和Cookie管理**:在Struts中,...
4. Struts-config.xml:是Struts框架的配置文件,用于配置Action、ActionForm、ActionForward以及其他相关组件。 5. ActionForward:是一个对象,用于在Action类中指定一个页面的地址,用来进行页面的跳转。 了解...
在描述中提到的“no found”问题,通常与以下因素有关: 1. **配置文件**:在struts.xml中,你需要为每个Action定义一个对应的Action类和结果。如果使用`<jsp:forward/>`,则需要在Result类型中指定为`dispatcher`...
此异常意味着在创建指定路径的Action实例时遇到问题。 **可能原因**: 1. **Class文件未放置在类路径中**:编译后的`.class`文件未放置在Web应用的类路径中,例如`WEB-INF/classes`目录。 2. **拼写错误**:在配置...
- **ActionForward**:`execute()`方法返回一个ActionForward对象,用于指定请求处理完成后转向的页面。ActionServlet会根据ActionForward对象中的信息来转发或重定向到新的资源。 #### 四、Struts框架的工作原理...
在Struts的配置文件(通常为struts-config.xml)中,我们需要声明ActionForm、Action和相关的ActionForward。配置文件告诉Struts哪些URL请求应该映射到哪个Action,以及登录成功或失败后应显示哪个JSP页面。 视图...
- **定义 ActionForward:** 在 Action 中使用 `ActionForward` 对象来控制流程的转向。 - **重定向与转发的区别:** 了解两种不同类型的转向方式及其应用场景。 - **设计 ActionMapping:** - **动态 ...
每个Action对应一个特定的业务逻辑,执行完毕后返回一个表示结果的ActionForward对象。 3. **ActionForm**:负责收集用户从视图层提交的数据,并在Action中进行验证和处理。这些数据通常被封装在一个JavaBean对象中...
反之,如果返回的是空的`ActionErrors`对象,则表示表单验证成功,这时将执行`Action`类的`execute()`方法,并根据`execute()`方法返回的`ActionForward`对象来决定下一步的目标URI。 #### 具体案例分析 根据以上...
这些方法会处理用户请求,与数据库交互,并返回一个表示结果的ActionForward对象,指示下一步的视图应该是什么。 3. **ActionForm组件** ActionForm是Struts用来在Action和视图之间传递数据的类。它可以包含用户...
ActionForward forward = new ActionForward(); forward.setPath("/welcome.jsp"); return forward; ``` - `ActionForward`对象可以通过设置路径来指定下一个页面或者另一个Action。 - 在本例中,Action处理完成后...
在Action类中,我们通常使用`ActionForward`对象来实现请求转发。例如: ```java ActionForward forward = mapping.findForward("success"); return forward; ``` 其中,"success"是在struts-config.xml中...
Struts 1.3.8 是 Apache 软件基金会开发的一个开源的 Web 应用框架,主要用于构建基于 Java 的企业级应用。该版本在 Struts 1.x 系列...同时,对于那些遇到 Struts 相关问题的开发者,源码分析也是解决问题的宝贵资源。