Struts2的学习,所需jar包如附件所示,放到项目的WebRoot\WEB-INF\lib目录下,
在MyEclipse中建立Web项目,在src目录下新建Struts.xml文件,项目结构图如:
Struts.xml如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="test" extends="struts-default">
<action name="showLogin">
<result>/login.jsp</result>
</action>
<action name="loginTest" class="com.test.action.LoginTestAction" >
<result name="input">/login.jsp</result>
<result name="success">/loginsuccess.jsp</result>
</action>
</package>
</struts>
建包com.test.action,建立java文件:
package com.test.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validation;
@Validation
public class LoginTestAction extends ActionSupport{
private String userName;
private String password;
@RequiredStringValidator(message="密码为空")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@RequiredStringValidator(message="用户名为空")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String login(){
HttpServletRequest request = ServletActionContext.getRequest();
System.out.println(request.getContextPath()+"=============");
if(getUserName().equals("admin")&&getPassword().equals("admin")){
System.out.println("成功登入");
return SUCCESS;
}else{
addActionError("密码或账号错误!");
System.out.println("登陆失败");
return INPUT;
}
}
public String logout(){
System.out.println("成功登出!");
return SUCCESS;
}
}
说明:
1.@Validation 是为该Action加入验证,JDK5以上可用
2.@RequiredStringValidator(message="用户名为空")
@RequiredStringValidator(message="密码为空") 是对界面提交过来的密码进行验证(在login.jsp中表单名称要与之对应),当为空或空字符串的时候会进行验证,Struts2的验证的方式有很多种,但如果JDK支持注解的话,肯定是最方便的
3.由于Struts2中的方法签名中是没有参数的,所以得到request或response和Strust1是不同的,最简单的方式如下:
HttpServletRequest request = ServletActionContext.getRequest();
同理可以得到response.
4.在Struts1中对同一个Action调用不同的方法的话是类似TestAction.do?method=test,而在Struts2中是通过TestAction!test.action调用(其中的test就是所需调用的方法名)
在WebRoot目录下新建login.jsp,
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<s:form action="loginTest" method="POST" validate="true">
<tr>
<td colspan="2">
登陆界面
</td>
</tr>
<tr>
<td colspan="2">
<s:actionerror />
<s:fielderror />
</td>
</tr>
<s:textfield name="userName" label="Login name"/>
<s:password name="password" label="Password"/>
<s:submit value="Login" align="center"/>
<s:submit method="login" value="登陆" align="center"></s:submit>
<s:submit method="logout" value="登出" align="center"></s:submit>
</s:form>
</body>
</html>
说明:
1.<s:submit method="login" value="登陆" align="center"></s:submit>是对于同一个表单提交到一个Action中不同处理时, 其中的method="login"就是调用login方法
建立loginsuccess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
成功登入! <br>
</body>
</html>
分享到:
相关推荐
拦截器是Struts2的一个重要特性,它们允许在Action执行前后插入自定义逻辑,比如日志记录、权限检查等。此外,Struts2的插件体系也十分强大,如Tiles插件用于布局管理,Ajax支持插件实现异步交互。 除了理论知识,...
这个"STRUTS2学习文档"显然是一个关于如何理解和使用Struts2框架的教程资料,对于想要快速掌握Struts2核心概念和技术的开发者来说,它是一份非常有价值的资源。 Struts2框架的核心特点包括: 1. **拦截器...
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
6. **拦截器(Interceptors)**:拦截器是Struts2中的一个强大特性,它可以拦截Action执行前后的流程,实现日志记录、权限验证、事务管理等功能。常见的拦截器有Params拦截器(处理请求参数),Validation拦截器...
3. **拦截器**:Struts2的拦截器是AOP(面向切面编程)的一种实现,它们可以插入到Action调用之前或之后,执行如日志、权限检查、数据验证等通用任务。例如,`ValidationInterceptor`用于验证用户输入,`...
3. **拦截器(Interceptors)**:拦截器是Struts2的一大亮点,它们在Action调用前后执行,可以实现如日志、事务管理、权限控制等功能,提高了代码的可复用性。 4. **结果类型(Result Types)**:框架支持多种结果...
3. **Interceptor**:拦截器是Struts2的一个强大特性,它允许在Action调用前后插入自定义逻辑,如日志记录、权限验证、数据校验等。通过配置Interceptor栈,可以灵活控制Action的执行流程。 4. **文件上传**:在...
在这个名为"struts2学习小项目"的资源中,我们可以看到一个适用于初学者实践的实例,它结合了Oracle数据库,提供了一个从基础到实践的学习路径。 首先,了解Struts2框架的基本概念至关重要。Struts2的核心是Action...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...
4. **Interceptor拦截器**:Struts2的一个强大特性是拦截器,它们是插在Action调用之前和之后的逻辑,可以实现如日志记录、权限检查等功能,增强了框架的灵活性和可扩展性。 5. **结果类型**:Struts2支持多种结果...
Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入理解MVC思想对于优化Struts2应用至关重要,因为MVC分离了模型、视图和控制器,使得代码更易于管理和...
对于初学者,这是一条学习和掌握Struts2的宝贵途径,而对于经验丰富的开发者,源码分析能帮助他们更高效地定位和解决问题。因此,"struts2完全学习手册源码"是提升Java Web开发技能的绝佳资源。
- **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...
4. **拦截器**:拦截器是Struts2的一个重要特性,它们在Action调用前后执行,可以实现如日志、权限检查、性能监控等通用功能。 5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
4. **Interceptor(拦截器)**:拦截器是Struts2的核心特性,它们可以实现事务管理、日志记录、权限检查等功能。理解并自定义拦截器是提高代码复用性和灵活性的关键。 5. ** strut2标签库**:Struts2提供了一套丰富...