Action:单实例(单例),多线程使用时如果有可以修改的成员属性要注意线程安全
ActionForm一般是粗粒度的,一般一个模块对应一个ActionForm
Action:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginActionForm laf = (LoginActionForm)form;
String username = laf.getUsername();
String password = laf.getPassword();
// if ("admin".equals(username) && "admin".equals(password)) {
// //转向到登录成功页面
// request.setAttribute("username", username);
// return mapping.findForward("success");
// }else {
// //转向到登录失败页面
// return mapping.findForward("error");
// }
String errorInfo = "";
try {
UserManager.getInstance().login(username, password);
//request.setAttribute("username", username);
return mapping.findForward("success");
}catch(UserNotFoundException unfe) {
unfe.printStackTrace();
errorInfo = "用户不能找到,用户名称=[" + username + "]";
}catch(PasswordErrorException pee) {
pee.printStackTrace();
errorInfo = "密码错误";
}
request.setAttribute("errorinfo", errorInfo);
return mapping.findForward("error");
}
ActionForm 两个属性:username password
注意ActionForm里面的两个方法:
方法/**
* 每次收集数据都调用
*/
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
System.out.println("----------LoginActionForm.reset()-----------");
}
/**
* 每次收集数据都调用
*/
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
System.out.println("----------LoginActionForm.validate()-----------");
return null;
}
配置文件:
<form-beans>
<form-bean name="loginForm" type="com.aowin.struts.LoginActionForm"/>
</form-beans>
<!-- path:访问路径 ,必须以/开头 服务器端很多都必须以/开头,Servlet也是
name:用哪个ActionForm
scope:默认sessino 不要放到session 因为这个对象用完就没了.
默认是session
一个Action对应一个ActionMapping实例
validate:默认true
-->
<action-mappings>
<action path="/login"
type="com.aowin.struts.LoginAction"
name="loginForm"
scope="request"
validate="true"
>
<forward name="success" path="/login_success.jsp" />
<forward name="error" path="/login_error.jsp"/>
</action>
</action-mappings>
页面可以取ActionForm的value
<body>
<%
LoginActionForm laf = (LoginActionForm)request.getAttribute("loginForm");
%>
<%=laf.getUsername() %>,登录成功
</body>
假如的struts1的jar:参照发行包里的空项目
分享到:
相关推荐
本学习笔记将深入探讨Struts2的核心概念、工作原理以及如何在实际开发中有效利用它。 **1. MVC模式与Struts2** MVC模式是一种软件设计模式,它将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
在本入门笔记中,我们将逐步了解如何开始使用Struts1。 首先,Struts1的核心组件包括前端控制器ActionServlet,它作为整个应用的入口点,负责处理所有的HTTP请求。ActionServlet会解析请求,根据配置文件(通常位于...
例如,如果Namespace是"/admin",Action名是"login",那么完整的路径就是"/admin/login.action"。此外,Action的路径可以通过Action的配置进行重定向和转发。 五、Action的动态调用和通配符配置 Action的动态调用...
Struts2 学习笔记-part2: 实现用户登录功能 在上一部分中,我们了解了构建一个基于Struts2的Java Web项目所需的基本库和配置文件。现在,我们将逐步实现一个简单的用户登录功能。 一、创建Action类 在Struts2框架...
本篇笔记将详细介绍如何在MyEclipse环境中配置Struts2.0,并逐步演示从创建运行环境到实现简单的验证和自定义类型转换的过程。 首先,我们需要准备运行环境。MyEclipse 6.0 和 Tomcat 5.5 是开发Struts2.0应用的...
### Struts 1.2 学习笔记:深入理解 Struts 工作流程 #### Struts 概述 Struts 是一个开源的 MVC(Model-View-Controller)框架,用于简化 Java Web 应用程序的开发。Struts 1.2 版本是基于 Servlet 的 MVC 实现,...
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <!-- 配置表单 --> <!-- 配置Action --> <action path="/login" name="userForm" type=...
本学习笔记主要涵盖了Struts2.0的基础概念、核心组件、配置方法以及实际代码示例,旨在帮助开发者更好地理解和运用这个框架。 一、Struts2.0基础 Struts2.0是Apache软件基金会的开源项目,它是Struts1.x的升级版本...
博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...
### Struts2学习笔记 #### 一、Struts2简介 Struts2是Apache基金会下的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架。Struts2提供了丰富的功能来简化Java Web应用的开发过程...
本笔记将深入探讨Struts2的核心组件、配置以及它的一些关键特性。 首先,让我们从`web.xml`配置文件开始。这个文件是Java web应用的部署描述符,它告诉服务器如何处理请求。在Struts2中,我们定义了一个名为`struts...
struts2学习笔记 很基础 容易懂第一个struts2的web用户登录工程:创建一个web工程->创建login.jsp(创建advanced的JSP)->登录的form表单(注意:action=“login.action”)->编写完成后配置
通过深入学习 Struts2 的拦截器机制,开发者可以更好地理解框架的工作原理,并且能够定制化地处理业务需求,提高应用程序的效率和安全性。同时,这也为团队协作和代码规范提供了有力的支持。因此,熟悉并熟练运用...
### Struts学习笔记 #### 一、Struts2框架简介 Struts2是一个开源的、用于开发Java EE Web应用程序的MVC框架。它基于Struts 1进行了改进,提供了更加强大和灵活的功能,比如拦截器、动态方法调用、类型转换等。...
Struts是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。...记得实践是最好的学习方式,动手操作一遍会让你对Struts的登录功能有更深的理解。
在Java Web开发中,Struts2和Spring的整合是常见的实践,它允许我们利用Spring的Inversion of Control (IoC)容器来管理Struts2 Action的生命周期和依赖注入。这样的整合使得应用程序更易于维护和解耦,同时也方便了...
虽然Struts 1在业界有广泛的应用,但随着技术的发展,Struts 2应运而生,它继承了Struts 1的优点,并引入了许多新的特性和改进,如OGNL表达式语言、拦截器机制、更灵活的配置方式等。 总结来说,达内的Struts课程...
这有时会导致找不到Action的错误,如"There is no Action mapped for namespace/and action name Login.",需确保在web.xml中正确配置Struts2的FilterDispatcher以加载这些资源。 2. **UI组件与模板引擎**:为了...