`
gongjiayun
  • 浏览: 159549 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

struts2开发简单实例

阅读更多
struts2开发简单实例

1.引入struts2相应的jar包,可以到网上下载,大把大把的。

2.配置struts.xml 要放在src目录下 如下:
 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<!-- Struts 2 的Action必须放在包空间下 -->
	<package name="strutsqs" extends="struts-default">
		<!-- 定义action的名字以及action的实现类 -->
		<action name="LoginAciton" class="com.gjy.struts2.loginAction.LoginAction">
			<!-- 定义action的处理结果result,result有两个属性,其中name指定返回名称,tyle指定返回的类型 -->
			<!-- 处理Login错误时返回/error.jsp -->
                        <result name="error">/error.jsp</result>
			<!-- 处理Lognin正确时/suc.jsp -->
            		<result name="suc">/suc.jsp</result>
		</action>
	</package>	
</struts> 

3.配置web.xml struts2与struts1不同,struts2是通过一系列的过滤器来组成过滤链来对用户的请求作处理
如下:
 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
  	<filter-name>struts2</filter-name>
  	<!--定义struts2的核心Filter的实现类 -->
  	<filter-class>
  		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping></web-app>

3.写Action,struts2的acction不继承其它类,是一个普通的java类,它不与serverlet API 相偶合,降低了代码的可维护性,使得代码
更加容易测试。
如下:

(1).自定义一个action接口

package com.gjy.struts2.interfaceAction;

public interface Action {
	public static String SUCCESS="suc";
	public static String ERROR="error";
	
	public String execute()throws Exception;
}

(2).写一个loginAction,实现action接口,此action的业务逻辑没有与LoginAction分开,可自行实现分开

package com.gjy.struts2.loginAction;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.gjy.struts2.entity.Book;
import com.gjy.struts2.interfaceAction.Action;
import com.opensymphony.xwork2.ActionContext;

public class LoginAction implements Action {
	
	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;
	}
	
	
	//处理用护请求的execute方法
	public String execute() throws Exception
	{
	
	if (getUserName().equals("gongjiayun")
	&& getPassWord().equals("hehe") )
	{
		//通过ActionContext访问Web对象的Session对象,此处的ActionContext返回的是一个Map
		//虽然struts2的action中没有HttpSession对象,但我们也可以通过通过ActionContext访问Web对象的Session对象
		Map sessionMap = ActionContext.getContext().getSession();
		sessionMap.put("user" , getUserName());
		Book book = new Book();
		Object books[]= book.getBook();
		List<Object[]> bookList = new ArrayList<Object[]>();
		bookList.add(books);
		sessionMap.put("book", bookList);
		return SUCCESS;
	}
	else
	{
		return ERROR;
	}
	}
}


(3).写一个实体类Book
package com.gjy.struts2.entity;

public class Book {
	private static Object book[]=new Object[4];
	
	public Book(){
		book[0] = "《java编程思想》";
		book[1] = "《Struts2权威指南》";
		book[2] = "《精通Oracle》";
		book[3] = "《我的Flex我精通》";
	}
	
	public Object[] getBook(){
		return book;
	}
}

(4).写一个登陆页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <p>用户登陆</p>
    <form action="LoginAciton.action">
    	username:<input type="text" id="userName" name="userName"/><br/><br/>
    	password:<input type="password" id="passWord" name="PassWord"/><br/><br/>
    	<input type="submit" value="submit">
    </form>
  </body>
</html>

(5).写一个显示页面suc.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'suc.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    
    <center><div>
    WelCome,${sessionScope.user},you can do anything! Long Long ago,I have a dream !<br>
    <table border="1px" bordercolor="blue" id="tbColor">
	    <caption>作者gjy的图书</caption>
	    <c:forEach var="books" items="${book}" >
	    <tr >
	    	<td>书名:</td>
	    	<td>${books[0] }</td>
	    </tr>
	   <tr>
	    	<td>书名:</td>
	    	<td>${books[1] }</td>
	    </tr>
	    <tr>
	    	<td>书名:</td>
	    	<td>${books[2] }</td>
	    </tr>
	    <tr>
	    	<td>书名:</td>
	    	<td>${books[3] }</td>
	    </tr>
	    </c:forEach>
    </table>
    </div></center>
  </body>
</html>

(6).写一个error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'suc.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    error,you can do nothing! <br>
  </body>
</html>



分享到:
评论

相关推荐

    struts2简单例子

    通过学习和实践这个“struts2简单例子”,开发者可以逐步掌握Struts2的基本用法,为更复杂的Web应用开发打下坚实基础。记得不断探索Struts2的高级特性,如OGNL表达式、插件扩展等,以提升应用的灵活性和可维护性。

    struts2简单实例

    总结,"struts2简单实例"展示了如何使用Struts2框架构建一个简单的学生信息查询功能,涵盖了配置文件、Action实现、数据传输以及视图展示等多个方面,是学习和理解Struts2工作原理的好例子。通过这个实例,开发者...

    struts2的简单实例

    这个“struts2的简单实例”将带你了解如何在实际项目中使用Struts2。 首先,我们需要理解Struts2的核心概念: 1. **Action类**:这是业务逻辑的载体,负责处理来自用户的请求。Action类通常继承自`...

    struts2的简单例子

    这个"struts2的简单例子"是一个适合初学者理解并实践Struts2框架的基础教程。 首先,我们需要了解Struts2的核心概念: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,它是控制器层的主要组成部分。一...

    Struts2简单实例

    通过这个简单的实例,你已经初步了解了Struts2的工作原理和基本操作。在实际开发中,你可以根据需求添加更多的Action、拦截器和结果类型,实现更复杂的业务逻辑和页面跳转。同时,Struts2还提供了丰富的插件和第三方...

    Struts2+rest简单实例

    在这个"Struts2+rest简单实例"中,开发者创建了一个小型的示例应用,目的是帮助初学者快速理解如何在Struts2框架中集成RESTful服务。以下是这个实例中可能涉及的关键知识点: 1. **Struts2框架基础**:Struts2的...

    struts2简单例子源码

    通过学习这个简单的Struts2例子,你可以了解到如何在实际项目中应用Struts2的类型转换和验证功能,这对于提高代码质量和用户体验都有着重要的作用。同时,这也是深入理解Struts2框架、提升Java Web开发技能的好途径...

    struts2+rest简单实例

    总之,"struts2+rest简单实例"是一个学习如何在Struts2框架中实现RESTful API的绝佳资源。通过实践这个示例,开发者可以更好地理解这两者的结合,以及如何构建一个符合REST原则的Java Web应用程序。

    struts2入门例子

    实践这个例子,你可以了解到如何设置一个简单的Struts2应用,从而为进一步学习更复杂的特性如国际化、文件上传、异常处理等奠定基础。 总之,Struts2是一个强大的MVC框架,它的核心在于`struts.xml`配置文件,通过...

    struts2标签使用例子

    通过以上介绍,我们可以看出Struts2标签库为Web开发带来了很多便利。在实际项目中,开发者可以根据需要选择合适的标签来构建用户界面,提高开发效率。在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签...

    struts2.3 最简单项目例子(带struts必需jar包)

    标签中的“struts2例子”和“sturts2demo”表明这是一个演示如何使用Struts2开发Web应用的实例。通过运行这个例子,开发者可以学习到如何创建Action、如何配置Struts2、如何实现数据绑定、以及如何利用Struts2的拦截...

    struts2验证框架简单实例

    本实例将带你深入理解Struts2验证框架的使用,以及在实际操作中可能遇到的问题和解决方案。 首先,Struts2的验证框架主要基于两个组件:`Validation`和`Validator`。`Validation`是Action类的注解,而`Validator`则...

    struts2的一个简单的例子

    这个"struts2的一个简单的例子"旨在帮助初学者理解并掌握Struts2的核心概念和工作原理。以下是对这个例子的详细解释: 一、Struts2框架概述 Struts2是基于MVC(Model-View-Controller)设计模式的开源框架,它继承...

    struts2经典实例

    这个例子简单地演示了如何设置Struts2环境,创建第一个Action并显示简单的输出。 通过以上这些实例,你可以逐步学习和掌握Struts2的配置、Action、拦截器、结果类型、OGNL表达式、数据绑定、国际化、安全等方面的...

    struts2的一个简单登陆例子

    总之,这个简单的Struts2登录例子涵盖了Struts2的核心概念,包括Action、配置文件、视图页面、数据验证以及使用MyEclipse进行开发。通过学习这个例子,开发者可以更好地理解Struts2框架的运作机制,并逐步掌握Java ...

    java框架struts2 简单完整实例

    本实例是一个基础的Struts2应用,展示了如何创建一个简单的Action,配置Action映射,以及生成相应的视图。随着你对Struts2的深入学习,你会了解到更多高级特性,如动态方法调用、国际化、主题和模板、拦截器栈等。...

    Maven构建struts2最简单例子

    在这个"使用Maven构建Struts2最简单例子"中,我们将探讨如何结合这两个工具来创建一个基础的J2EE应用。 首先,让我们深入了解Maven。Maven使用一个称为POM(Project Object Model)的XML文件来定义项目的配置信息,...

    MyEclipse支持的struts2简单例子

    在MyEclipse这个集成开发环境中,Struts2提供了很好的支持,使得开发者可以更加高效地进行Web应用的开发。下面,我们将详细探讨如何在MyEclipse中使用Struts2实现一个简单的登录功能。 首先,我们需要创建一个新的...

    struts2完整例子

    Struts2是一个强大的Java web...理解并掌握上述知识点,你就能构建起对Struts2框架的基本认知,从而进一步开发更复杂的企业级应用。通过实际操作jamesby-struts2-helloworld项目,你可以亲手实践这些概念,加深理解。

Global site tag (gtag.js) - Google Analytics