(一)
Struts中的action动作自动生成的都会继承action类,也就是同时也要复写execuse()方法从这里入口执行动作。
另一种用法也可不用继承action这样执行。提供一个类MappingDispatchAction,当继承这个类就可以不用复写execuse()方法从这里唯一入口了。
入口的方式是在配置文件struts-config.xml中,在action中加入<set-property property="parameter" value="方法名 "/>就可以进入想进的方法体中了。
例如:
struts-config.xml文件中action
<action path="/login" scope="request"
name="loginForm"
input="/login.jsp" type="action.UserAction"validate="true">
<set-property property="parameter" value="login" />
</action>
在类action.UserAction中
public class UserAction extends MappingDispatchAction {
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//:TODO
}
}
这样就可以完成action了,提交时会找到login方法执行。
(二)重定向
<action path="/accountInfo" type="action.UserAction" name="modifyForm" validate="false" scope="request">
<set-property property="parameter" value="accountInfo"/>
<forward name="success" path="/accountInfo.jsp" redirect="false"/>
</action>
<action path="/login" scope="request" name="loginForm"
input="/login.jsp" type="action.UserAction"
validate="true">
<set-property property="parameter" value="login" />
<forward name="userHome" path="/accountInfo.do" redirect="true/false"/>
</action>
action类代码中执行
return mapping.findForward(“userHome”);
当提交login.do会把数据提交给loginForm服务请求,跳转到userHome会根据path找到路径,而这里的path是另一个action,他也就会调用另一个action执行,这时把redirect设置成true重定向,执行下一个action客户端会再次发出请求这时候使用的就是modifyForm而不是loginForm,之前的请求不起作用。redirect设置成false取消重定向,依然会执行下一个action但客户端不会再发出请求,保留loginForm中信息,两个action使用的是相同的form。
例如
页面A提交请求login.do,执行action.UserAction跳转userHome
页面B中
<bean:write name="loginForm" property="name"/>
依照上面的配置文件,如果redirect="true" 就会报错 找不到loginForm
如果redirect="false" 就OK
问题就在重定向后传递使用的是modifyForm,取消重定向使用的依然是loginForm
分享到:
相关推荐
Struts2是一个非常流行的Java Web框架,...然而,正确理解和使用它需要对Struts2的内部机制有一定的了解,并注意安全性和性能方面的考虑。通过阅读源码和利用相关工具,开发者可以更好地掌握这一特性,提升开发效率。
Struts 1(讨论的版本)是一个广泛使用的框架,但在后续版本中被Struts 2所取代,尽管如此,Struts 1的基础概念对于理解现代Web开发中的MVC框架仍然很重要。 首先,Struts 框架的核心是ActionServlet,这是一个实现...
以下是对Struts用法的详细总结: 1. **STRUTS 编码步骤**: - 创建项目的目录结构:通常包括SOURCE、JSP、WEB-INF、classes和lib目录。 - SOURCE下存放未编译的Java源代码。 - JSP目录下存放用户交互界面的JSP...
在Struts2中,OGNL用于处理动作类的属性到JSP页面的传递,以及用户输入到动作类的绑定。 首先,让我们了解OGNL的基本语法。OGNL表达式通常包含两个部分:对象引用和属性访问。例如,`user.name`表示获取名为`user`...
下面将详细介绍Struts Form表单的用法及其与HTML `<form>`标签的混合使用。 **1. 创建Struts Form Bean** 首先,我们需要创建一个JavaBean类,这个类通常称为Form Bean,它将代表表单中的数据模型。例如,我们可以...
Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在...通过学习和分析这些文件,初学者可以更深入地理解Struts中DispatchAction的使用和工作原理,从而更好地进行Java Web开发。
3. **JSP标签**:Struts 2提供了新的标签库,需要更新JSP页面以使用Struts 2的标签。 4. **Interceptor配置**:根据需求添加Struts 2特有的拦截器,以实现Struts 1中类似的功能,如Session管理、异常处理等。 5. *...
这个“Struts2接口文档”是开发者的重要参考资料,提供了关于Struts2框架内各个组件、类库以及接口的详细说明,帮助开发者深入理解框架的内部工作原理并有效地使用其功能。 Struts2的核心组件包括Action、Result、...
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、高效且易于维护的Web应用。...同时,对于学习和理解MVC架构、拦截器原理以及企业级Java Web开发,Struts2是一个很好的实践平台。
在这个"struts实例子很容易懂理解"的程序中,我们可以深入探讨Struts框架的基础知识以及如何通过实例来理解和应用它们。 首先,Struts框架的核心是Action类,这是处理用户请求的核心组件。在描述中提到的"整个程序...
这个"Struts2.0学习系列"旨在帮助初学者及进阶者深入理解并掌握Struts2.0的核心概念和技术。 在Struts2.0的学习过程中,首先需要了解的是其基本架构。Struts2.0框架整合了多种开源项目,如FreeMarker或JSP作为视图...
3. **插件体系**:Struts2支持丰富的插件,如Struts2-convention插件可以实现自动映射Action和方法,Struts2-dojo-plugin则提供了与Dojo库的集成,便于创建富客户端应用。 4. **OGNL(Object-Graph Navigation ...
通过查阅这个手册,开发者可以更深入地理解如何在JSP页面上使用Struts2标签,提高开发效率和代码质量。 总的来说,Struts2 API和标签手册是Java Web开发者必备的参考资料,它们可以帮助开发者快速掌握Struts2框架,...
它们可以帮助开发者快速掌握框架的使用方法,解决遇到的问题。 5. **示例(example)**:example部分提供了使用Struts2框架开发的示例应用,这些例子通常涵盖了基本到高级的用法,包括动作映射、结果类型、拦截器链...
下面我们将深入探讨Struts2的关键概念、注释以及使用方法。 **1. Struts2架构** Struts2的核心是Action类,它是处理用户请求的入口点。每个Action对应一个业务逻辑,当用户发起请求时,Struts2会根据配置文件(如...
在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。
"struts2.pdf"可能是关于Struts2的使用指南,涵盖了从基础到高级的使用案例和最佳实践。 学习和使用这两个框架,需要理解MVC设计模式,熟悉Java Web开发,同时掌握Servlet和JSP的基础知识。对XML配置的理解和使用也...
在“struts标签.txt”文件中,可能包含了更多关于Struts标签的详细用法和示例。这些标签能够简化JSP页面的编写,提高开发效率,使得业务逻辑和视图层的分离更加清晰。通过学习和理解这些标签,开发者可以更好地掌握...
源代码可以让我们深入理解框架的工作原理,定制和扩展框架功能,以及进行调试和性能优化。此外,"里面还包含jar包"表明除了源代码,还有编译后的二进制库文件,可以直接用于项目的构建和运行。 在"lib"目录下,通常...
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、模块化和高度结构化的Web应用程序。...通过深入理解并实践这个范例,你可以更好地掌握MVC设计模式,以及如何在实际项目中有效地使用Struts2框架。