`
yaodi0818
  • 浏览: 135842 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2.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包
  • 下载次数: 364
分享到:
评论
3 楼 zhaohaijun1981 2009-11-06  
先看看,谢谢
2 楼 lianlove120 2009-03-19  
Many thanks ! very useful for me..
1 楼 linmu0001 2008-06-21  
 

相关推荐

    struts2.0登陆例子

    总之,这个"struts2.0登陆例子"涵盖了Struts2的基本架构和流程,包括Action、Interceptor、Result和表单处理等关键概念,是初学者了解和掌握Struts2框架的良好实践案例。通过这个例子,你可以学习到如何构建一个完整...

    一个struts2.0简单例子

    Struts2.0是Apache软件基金会的一个开源框架,主要用于构建基于Java EE的Web应用程序。它在Struts1的基础上进行了重大改进,提供了更强大的功能和更好的灵活性。本例子将带你了解Struts2的基础架构和核心概念。 1. ...

    struts2.0小例子

    这个"struts2.0小例子"可能包含了创建一个简单的Struts2应用的步骤,如创建Action类、编写struts.xml配置、创建JSP视图等,以及如何利用OGNL传递数据。通过分析和实践这个例子,开发者能更好地理解Struts2的工作原理...

    struts2.0注解例子

    Struts2.0是一款强大的...通过这个例子,你可以了解到如何在Struts2.0中使用注解来构建一个简单的Web应用,并理解注解在简化配置、增强代码可读性方面的作用。实践这些示例,将有助于加深对Struts2.0注解的理解和应用。

    Struts 2.0

    在这个例子中,创建了一个名为`main`的包,继承自`struts-default`,然后定义了一个名为`helloAction`的Action,其结果页面为`success.jsp`。 当用户通过浏览器访问`http://localhost:8080/Xxx/helloAction.action`...

    struts2.0学习例子

    Struts2.0是Java Web开发中的一个框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化、易于维护的Web应用开发方式。本学习例子将带你深入理解Struts2的核心概念和用法。 1. **Struts2的...

    Struts 2.0的Action讲解

    Struts 2.0 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web框架,它极大地简化了开发过程。在Struts 2中,Action是处理用户请求的核心组件,负责业务逻辑的执行。与Struts 1.x相比,Struts 2.0的Action...

    struts2.0的官方架包

    struts2.0与struts的整体结构相差很大,官方架包里包括api,例子,还有.jar包,很有用

    Struts2.0很好的例子

    这个“Struts2.0很好的例子”压缩包很可能包含了一些实际的项目示例、源代码以及相关的Struts2.0框架文件,旨在帮助学习者理解和掌握Struts2.0的核心概念和用法。 首先,Struts2.0作为Action-based框架,它的核心是...

    STRUTS2.0例子中的简单登录

    这篇博客“STRUTS2.0例子中的简单登录”很可能是对如何在Struts2.0环境中实现一个基础的用户登录功能的教程。下面,我们将深入探讨Struts2.0的核心概念和这个登录示例中可能涉及的关键知识点。 1. **Struts2框架...

    struts2.0中文帮助手册

    10. **实战案例**:通过实际的例子,演示如何使用Struts2.0开发一个完整的Web应用。 Struts2.0中文帮助手册作为开发者的参考指南,旨在帮助读者快速理解和掌握这个框架,从而在实际项目中发挥出其强大的功能。通过...

    struts2.0标签使用

    在探讨Struts2.0标签库的使用时,我们首先需要了解Struts2.0框架的基本概念及其在MVC架构中的角色。Struts2.0是基于Java的一个开源Web应用框架,它继承了Struts1.x的优点并在此基础上进行了大量的改进和增强。Struts...

    struts2.0实例源码

    struts2.0实例源码(struts2是我写的struts2Deom是我下的资源项目一起给大家) 包括strust2.0的所有知识面,每个点我都写了详细注释 网上是很难找到这样的资料的,这是我个人学习笔记拿出来希望跟大家一起学习...

    struts2.0 教程(标签,XML配置,入门例子,帮助手册)

    Struts2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Java EE平台上提供了强大的控制层解决方案。本教程旨在帮助初学者和开发者掌握Struts2.0的核心概念、配置和实际应用。 首先...

    struts2.0源码例子

    基础入门哟,2.0和1.2可以说有质的飞跃哟--源码

    struts 2.0系列2常用的Struts 2.0的标签(Tag)介绍

    以下是一个简单的例子,展示如何根据请求参数"name"的值显示不同的消息: ```jsp ("name") + '\'' %&gt;" /&gt; &lt;s:if test="#name == 'Max'"&gt;Max's file here &lt;s:elseif test="#name == 'Scott'"&gt;Scott's file here ...

    struts2.0拦截器、crud例子与用法

    Struts2.0是一个流行的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,主要用于构建动态网站。本文将详细解析Struts2中的拦截器(Interceptor)、CRUD操作以及Action的执行流程。 首先,让我们...

Global site tag (gtag.js) - Google Analytics