`

stucts2.0简单示例

阅读更多
Struts2.0是struts1.0和WebWork2.2合并版本,集成了两大流行MVC框架的优点,对struts框架来说是一个大的提升,同时也更大程度地简化了开发人员的开发过程。
这个例子实现了一个简单的登陆效果,操作步骤如下:
1、首先,要从apache网站上下载struts2.0.11的完整包(http://struts.apache.org/downloads.html),解压后需要找到下列几个文件:
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
2、然后,我们就开始做第一个例子,新建web项目struts2
3、将上面列举的jar文件拷贝到项目struts2\WEB-INF\lib中,或添加自己的strust2.0用户库
4、新建login.jsp
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
<form action="login.action" method="post">
username:<input type="text" name="username" /><p>
password:<input type="password" name="password" /><p>
<input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

struts1与struts2的区别:
<form action="login.action" method="post">
struts1通过servlet拦截所有发送过来以do结尾的请求,交有ActionServlet控制,决定由那个Action进行处理

5、新建result.jsp
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
	username:${requestScope.username}<br> 
	password:${requestScope.password} 
</body>
</html>

6、修改web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>
	struts2.0</display-name>
	<welcome-file-list>
		<welcome-file>login.jsp</welcome-file>
	</welcome-file-list>
	<filter>
		<filter-name>struts2.0</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2.0</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

struts1与struts2的区别:
struts1是通过servlet做控制器
struts2这里采用Filter过滤客户端发过来的请求

7、创建loginAction.java
package com.action;
public class loginAction {
	private String username;
	private String password;	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public String execute()throws Exception{
		return "success";		
	}
	
}

struts1与struts2的区别:
struts1必须继承Action,覆盖execute()
struts2则不需要

8、添加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="struts2.0" extends="struts-default">
    	<action name="login" class="com.action.loginAction">
    		<result name="success">/result.jsp</result>
    	</action>
    </package>
</struts>


struts1与struts2的区别:
struts1在项目\WEB-INF\struts-config.xml配置文件
struts2在项目\src\struts.xml配置文件


9、o了,简单的例子以完成,下面是代码重构:
使用struts2.0标签,添加校验功能
1、修改login.jsp,改为使用struts2.0标签
导入标签<%@ taglib prefix="s" uri="/struts-tags"%>
把form表单替换为使用struts2.0标签
<s:form action="login">
	<s:textfield name="username" label="username"></s:textfield>
	<s:password name="password" label="password"></s:password>
	<s:submit label="submit"></s:submit>
</s:form>

(使用标签可以自动换行,按钮默认右对齐)
2、修改loginAction.java
loginAction继承ActionSupport
重写Validate()验证方法
@Override  
    public void validate() {   
        if(null==this.getUsername()||"".equals(this.getUsername().trim())){   
            this.addFieldError("username", "username error");//添加错误信息   
        }   
        if(null==this.getPassword()||"".equals(this.getPassword().trim())){   
            this.addFieldError("password", "password error");//添加错误信息   
        }   
    }  

3、修改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="struts2.0" extends="struts-default">   
        <action name="login" class="com.action.loginAction">   
                <!-- 添加出错返回的页面 -->   
               <result name="input">/login.jsp</result>            <result name="success">/result.jsp</result>   
        </action>   
    </package>   
</struts>  

struts1与struts2的区别:
struts1需要在form里添加<html:errors/>标签,来提示错误处理的信息
struts2则不需要

匹配用户名为hello,密码为world
1、修改loginAction.java下的execute()方法
public String execute()throws Exception{  
        if("hello".equals(this.getUsername().trim())&&"world".equals(this.getPassword().trim())){  
            return "success";     
        }  
        else{  
            this.addFieldError("username", "username or password error");//定义在username上面提示错误信息  
            return "failer";      
        }  
              
    } 

2、修改struts.xml,增加failer映射
<?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="struts2.0" extends="struts-default">   
        <action name="login" class="com.action.loginAction">   
            <result name="input">/login.jsp</result>   
            <result name="success">/result.jsp</result>   
                  <!-- 增加failer映射 -->   
            <result name="failer">/login.jsp</result>   
        </action>   
    </package>   
</struts>  

3、全部完成,把制作好的web应用struts2拷贝到tomcat下运行
  • struts2.0.rar (6.2 KB)
  • 描述: 附件中是本人做好的例子和struts2.0需要的jar包
  • 下载次数: 12
分享到:
评论

相关推荐

    stucts快速入门

    根据提供的信息来看,这篇文档似乎误将Struts框架与AJAX技术混淆了。...因此,我们将围绕这一主题展开,详细介绍AJAX的相关知识点。 ### 一、AJAX概述 #### 1.1 AJAX定义 AJAX(Asynchronous JavaScript and XML)是...

    stucts2文件上传

    以下是一个简单的示例: ```java public String execute() { if (uploadFile != null && !uploadFile.isEmpty()) { try { // 将文件移动到服务器上的某个目录 File serverFile = new File(uploadFilePath + ...

    基于Stucts2+Hibernate的学生信息管理系统

    本项目"基于Struts2+Hibernate的学生信息管理系统"就是这样一个典型示例,它通过整合这两个框架,实现了对学生成绩、个人信息等数据的管理功能,包括添加、删除、修改和查询等基本操作。 **Struts2框架** Struts2是...

    级好的stucts入门实例程序(包含了基本的框架和知识点)

    5. **JSP和Tags**:在View层面,Struts提供了一系列的定制标签库(例如struts-tiles和struts-bean标签),使得开发者可以通过简单的标签来实现动态页面的渲染,避免过多的Java脚本代码。 6. **国际化和本地化**:...

    基于stucts2的图书管理系统源代码+论文资料

    《基于Struts2的图书管理系统源代码与论文资料解析》 在信息技术日新月异的今天,开发一个高效、易用的图书管理系统是许多企业和机构的需求。本项目以"基于Struts2的图书管理系统源代码+论文资料"为主题,旨在为IT...

    基于stucts+SQLServer的机票预定系统

    《基于Struts+SQLServer的机票预定系统详解》 在当今信息化社会,高效便捷的在线预订系统已经成为各行各业不可或缺的一部分,特别是在航空业。本系统——"基于Struts+SQLServer的机票预定系统",正是这样一个典型的...

    javaee项目 stucts宿舍管理系统

    【JavaEE项目:Struts实现的宿舍管理系统】 JavaEE(Java Platform, Enterprise Edition)是一个用于开发企业级应用程序的平台,它包含一系列标准和技术,用于构建分布式、多层的Web应用程序。...

    cas client增加stucts框架 服务端返回用户其它信息

    在IT行业中,CAS(Central Authentication Service)是一种广泛使用的开源单点登录(Single Sign-On, SSO)协议,它为各种应用程序提供了统一的认证服务。在本项目中,我们讨论的主题是如何在CAS客户端集成Structs...

    Stucts资料-----------------------哈哈哈哈哈

    这些资料可能包括教程、示例代码、论坛讨论、问题解答等,旨在帮助初学者理解并掌握Struts框架的基本概念和使用方法。 描述中提到,这份压缩包可能包含了一些网页资料,这可能是指HTML页面、PDF文档或在线教程链接...

    stucts2描述

    ### Struts2框架详解 #### 一、Struts2与WebWork的关系 Struts2并非凭空出现,它是在WebWork的基础上发展而来的,继承并优化了WebWork的核心架构和处理机制。Struts2的这一演化过程使得它不仅拥有更加强大的功能,...

    框架之Stucts2篇----day3.1

    Struts2是Apache软件基金会旗下的一个开源Web应用框架,它主要用Java语言编写,用于构建企业级的MVC(Model-View-Controller)架构的Web应用程序。本篇将重点介绍Struts2的基础知识、核心概念以及如何在实际开发中...

    论坛管理系统java+STUCTs 用上UML建模

    【标题】"论坛管理系统java+STUCTs 用上UML建模"涉及的主要知识点是基于Java编程语言和Struts框架构建一个论坛管理系统,并利用UML(统一建模语言)进行系统设计。在这个项目中,开发者运用了面向对象的设计原则和...

    apache stucts 2远程命令执行漏洞 (CVE-2021-31805) poc检测工具

    检测一个url命令为 python3 CVE-2022-22954-POC.py -u http://test.com 检测多个url命令为 python3 CVE-2022-22954-POC.py -f file.txt(把url按一行一个保存到file.txt中) 结果有可能如下

    J2EE-Spring-Stucts-Hibernate架构-经典-435页.pdf

    《J2EE-Spring-Stucts-Hibernate架构-经典》是一门深度剖析J2EE平台技术的课程,总共435页,旨在为学习者提供一个清晰、全面的J2EE技术框架理解,并通过实际操作训练提升其在J2EE Web应用开发中的编程能力。...

    stuct2基础

    stucts简介和基本应用和基本配置信息,基本功能来历

    struts2.2.3+spring2.5.6+hibernate3.2+proxool0.9.1

    这个压缩包文件包含了这些技术的集成示例,旨在帮助开发者理解和实践如何将它们有效地组合在一起。 **Struts2.2.3** 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。它提供了一种结构化的方式来...

    Spring和Struts框架学习总结

    下面通过一个具体的示例来了解如何使用Struts框架实现一个简单的登录验证系统。 1. **环境搭建**: - 必备的`struts2-blank.war`下的lib目录下的所有驱动包,放入项目的lib目录中。这些库包含了Struts框架运行所需...

    Struts2.5chm帮助文档

    最新Struts2.5开发帮助文档,需要的可以自行下载最新Struts2.5开发帮助文档,需要的可以自行下载

    Struts2+Hibernate实现的一个留言程序

    这个“Struts2+Hibernate实现的一个留言程序”示例提供了学习这两种技术集成应用的实践平台。 **Struts2** 是一个基于MVC(Model-View-Controller)模式的开源框架,它提供了强大的请求处理机制和丰富的动作控制。...

    Struts2最小Jar包

    包含以下几个jar包,可能会因为Struts2的版本不同,包名略有差异 struts2-core-2.0.11.1.jar xwork-2.0.4.jar commons-logging-1.0.4.jar freemarker-2.3.8.jar ognl-2.6.11.jar

Global site tag (gtag.js) - Google Analytics