`

Struts2学习日志(一)

阅读更多
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>

0
0
分享到:
评论

相关推荐

    struts2 学习资料

    拦截器是Struts2的一个重要特性,它们允许在Action执行前后插入自定义逻辑,比如日志记录、权限检查等。此外,Struts2的插件体系也十分强大,如Tiles插件用于布局管理,Ajax支持插件实现异步交互。 除了理论知识,...

    STRUTS2学习文档

    这个"STRUTS2学习文档"显然是一个关于如何理解和使用Struts2框架的教程资料,对于想要快速掌握Struts2核心概念和技术的开发者来说,它是一份非常有价值的资源。 Struts2框架的核心特点包括: 1. **拦截器...

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    Struts2的视频学习代码

    6. **拦截器(Interceptors)**:拦截器是Struts2中的一个强大特性,它可以拦截Action执行前后的流程,实现日志记录、权限验证、事务管理等功能。常见的拦截器有Params拦截器(处理请求参数),Validation拦截器...

    STRUTS2站点,STRUTS2学习实例8

    3. **拦截器**:Struts2的拦截器是AOP(面向切面编程)的一种实现,它们可以插入到Action调用之前或之后,执行如日志、权限检查、数据验证等通用任务。例如,`ValidationInterceptor`用于验证用户输入,`...

    struts2学习 源码

    3. **拦截器(Interceptors)**:拦截器是Struts2的一大亮点,它们在Action调用前后执行,可以实现如日志、事务管理、权限控制等功能,提高了代码的可复用性。 4. **结果类型(Result Types)**:框架支持多种结果...

    struts2入门学习源码

    3. **Interceptor**:拦截器是Struts2的一个强大特性,它允许在Action调用前后插入自定义逻辑,如日志记录、权限验证、数据校验等。通过配置Interceptor栈,可以灵活控制Action的执行流程。 4. **文件上传**:在...

    struts2学习小项目(很适合初学者)

    在这个名为"struts2学习小项目"的资源中,我们可以看到一个适用于初学者实践的实例,它结合了Oracle数据库,提供了一个从基础到实践的学习路径。 首先,了解Struts2框架的基本概念至关重要。Struts2的核心是Action...

    张龙圣思园struts2学习笔记word

    张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...

    struts2学习笔记总结

    2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...

    struts2的学习(一)

    4. **Interceptor拦截器**:Struts2的一个强大特性是拦截器,它们是插在Action调用之前和之后的逻辑,可以实现如日志记录、权限检查等功能,增强了框架的灵活性和可扩展性。 5. **结果类型**:Struts2支持多种结果...

    struts2学习笔记(完美总结)——转自OPEN经验库

    Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入理解MVC思想对于优化Struts2应用至关重要,因为MVC分离了模型、视图和控制器,使得代码更易于管理和...

    struts2完全学习手册源码

    对于初学者,这是一条学习和掌握Struts2的宝贵途径,而对于经验丰富的开发者,源码分析能帮助他们更高效地定位和解决问题。因此,"struts2完全学习手册源码"是提升Java Web开发技能的绝佳资源。

    Struts2视频教程

    - **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...

    Struts2学习资料(强烈推荐)

    4. **拦截器**:拦截器是Struts2的一个重要特性,它们在Action调用前后执行,可以实现如日志、权限检查、性能监控等通用功能。 5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,...

    struts2学习笔记

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...

    struts2学习笔记(1)

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...

    Struts2的Java专题学习网

    4. **Interceptor(拦截器)**:拦截器是Struts2的核心特性,它们可以实现事务管理、日志记录、权限检查等功能。理解并自定义拦截器是提高代码复用性和灵活性的关键。 5. ** strut2标签库**:Struts2提供了一套丰富...

Global site tag (gtag.js) - Google Analytics