一个简单的Struts2的 示例

来源:互联网 发布:幸福的小神棍兮知千千 编辑:程序博客网 时间:2024/06/05 20:38

struts2登录示例

 

    我也刚接触struts2不是很久,以前用的都是struts1.2。大家不要被struts2的名字给骗了哈,其实struts2webwork2.2的升级版。大多数功能与webwork2.2相似,可以这样说,struts2就是webwork2.3哈。闲话不多说了,这方面的资料网上到处都是哈,去google一下就知道了哈。

    现在我们就开始struts2之旅了。本人习惯了eclipse,所以我就在此IDE下建立webproject

一、 建立webproject

打开eclipse,然后在Navigator的视图下面单击右键”—>new >project(如图1.1)

1.1

然后弹出一个New Project 向导窗口(如图1.2),选择Web Project选项(如果你没有发现Web Project选项,你就选择MyEclipse,前提是你安装了MyEclipse插件,然后选择J2EE Projects,最后选择Web Projecet);点击next按钮,

1.2

然后弹出一个New J2EE Project 向导窗口,在Project Name处输入你要建的Web工程的名字,此示例中采用struts2_test,其余都可以默认设置。但是本人喜好把Context root URL 设置成/”,因为在浏览器访问的时候我嫌麻烦。这样设置在浏览器访问的时候就不需要输入工程名字,如:http://localhost:8080或者http://127.0.0.1:8080。单击Finish完成项目的建立。

1.3

二、创建包、完成基本配置

1、如图2.1是项目struts2-test的目录,为了对项目有效的管理,在src目录下创建包名:com.wuya

2.1

2、将项目需要的struts2.jar拷贝到WebRoot/WEB-INF/lib路径下。Struts2必需的类库有:struts2-core-2.0.8.jarxwork-2.0.3.jarfreemarker-2.3.8.jarcommons-logging-1.0.4.jarognl-2.6.11.jar。这里需要注意:只是把类库拷贝到该路径下还没有完哈,必须要把类库添加到项目中去。做法:选中项目,右键—>Properties>Java Build Path>Libraries>Add JARS

3、配置web.xml文件。配置文件代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app 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 hello world</display-name>

    
<filter>

       
<filter-name>struts2</filter-name>

       
<filter-class>

           org.apache.struts2.dispatcher.FilterDispatcher

       
</filter-class>

    
</filter>

    
<filter-mapping>

       
<filter-name>struts2</filter-name>

       
<url-pattern>/*</url-pattern>

    
</filter-mapping>

    
<welcome-file-list>

       
<welcome-file>login.jsp</welcome-file>

    
</welcome-file-list>

</web-app>

 

三、 用户请求页面

创建一个login.jsp页面,保存到WebRoot/pages路径下面。源代码如下:

   

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    
<head>

       
<title><s:text name="login.title" /></title>

    
</head>

    
<body bgcolor="pink">

       
<center>

           
<s:form action="Login">

              
<s:textfield name="name" label="用户:" />

              
<s:password name="password" label="密码:" />

              
<s:submit value="登录" />

           
</s:form>

       
</center>

    
</body>

</html>

 

以上代码做简要说明: <%@taglib prefix="s" uri="/struts-tags"%>此标签为struts2自带的标签库。

页面如图2.2

2.2

四、 LoginAction的创建

Struts2Struts1的区别就在于Struts2没有ActionForm,与表单对应的属性而是在Action里面定义的,这里为了使用验证框架,所以LoginAction必须继承ActionSupport,将LoginAction保存到com.wuya包下。LoginAction源代码如下:

package com.wuya;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

    
private String name;

    
private String password;

    
public String getPassword() {

       
return password;

    }


    
public void setPassword(String password) {

       
this.password = password;

    }


    
public String getName() {

       
return name;

    }


    
public void setName(String name) {

       
this.name = name;

    }


    
public String execute() throws Exception {

       
if (getName().equalsIgnoreCase("wuya")

              
&& getPassword().equalsIgnoreCase("wuya")) {

           ActionContext.getContext().getSession().put(
"user", getName());

           
return SUCCESS;

       }
 else {

           
return ERROR;

       }


    }


}


 

以上代码做简要说明:这个类最重要的就是重写execute()方法。这里做了简单的判断,如果输入的用户和密码为:wuya,则登录成功,并将用户名存放到session里面,返回登录成功页面success.jsp。这里是返回的SUCCESS,此常量在struts.xml中映射为success.jsp。输入不为:wuya 则返回失败页面error.jsp

五、 成功页面和失败页面的创建

1、创建一个success.jsp页面,保存到WebRoot/pages路径下面。源代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding
="UTF-8"
%>

<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

    
<head>

       
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

       
<title><s:text name="login.success" />

       
</title>

    
</head>

    
<body bgcolor="pink">

       
<center>

           登录成功,欢迎您${sessionScope.user}

       
</center>

    
</body>

</html>

 

以上代码做简要说明: ${sessionScope.user}这个为获取sessionuser对应的值,即用户名。页面如图2.3

2.3

2、创建一个error.jsp页面,保存到WebRoot/pages路径下面。源代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding
="UTF-8"%>

<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

    
<head>

       
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

       
<title><s:text name="error.title" /></title>

    
</head>

    
<body bgcolor="pink">

       
<center>

           
<s:text name="error.info" />

       
</center>

    
</body>

</html>

 

页面如图2.4

                               

2.4

六、 编写配置文件

1、创建Struts.xml配置文件,保存到src路径下面。配置文件代码如下:

 

 

<?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="com.wuya" extends="struts-default">

        
<action name="Login" class="com.wuya.LoginAction">

           
<result name="success">/pages/success.jsp</result>

           
<result name="error">/pages/error.jsp</result>

           
<result name="input">/pages/login.jsp</result>

       
</action>

    
</package>

</struts>

 

2、创建messageResource.properties配置文件,保存到src路径下面。配置文件代码如下:

 

 

      #login.jsp
      login.title=Struts2TestLoginPage
      name.required=namerequired
      password.required=passwordrequired
      #success.jsp
      login.success=LoginSuccess
      #error.jsp
      error.title=LoginFailed
      error.info=LoginFailed

 

3、创建struts.properties配置文件,保存到src路径下面。此配置文件的作用就是将messageResource.propertiesstruts.properties里面注册。配置文件代码如下:

struts.custom.i18n.resources=messageResource

 

4、创建LoginAction-validation.xml配置文件,作用是数据验证,保存路径与LoginAction.java相同,配置文件代码如下:

<!DOCTYPE validators PUBLIC

        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"

        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>

<validators>

    
<field name="name">

       
<field-validator type="requiredstring">

           
<message key="name.required" />

       
</field-validator>

    
</field>

    
<field name="password">

       
<field-validator type="requiredstring">

           
<message key="password.required" />

       
</field-validator>

    
</field>

</validators>

 

七、 部署并运行

   

   

 

总算是写完了,但是我都不知道写了些什么,第一次写这样的文章感觉挺难的,根本就找不到方向,还请大家见凉。在这个示例中,很多知识点我都没有进行讲解,需要的新手可以去网上google一下。

原创粉丝点击