您的位置:首页 > 编程语言 > Java开发

一个简单的Struts2的 示例

2007-09-26 20:26 483 查看
struts2登录示例

我也刚接触struts2不是很久,以前用的都是struts1.2。大家不要被struts2的名字给骗了哈,其实struts2是webwork2.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.jar,xwork-2.0.3.jar,freemarker-2.3.8.jar,commons-logging-1.0.4.jar,ognl-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的创建
Struts2与Struts1的区别就在于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}这个为获取session中user对应的值,即用户名。页面如图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路径下面。配置文件代码如下:

[align=left] #login.jsp[/align]
[align=left] login.title=Struts2TestLoginPage[/align]
[align=left] name.required=namerequired[/align]
[align=left] password.required=passwordrequired[/align]
[align=left] #success.jsp[/align]
[align=left] login.success=LoginSuccess[/align]
[align=left] #error.jsp[/align]
[align=left] error.title=LoginFailed[/align]
[align=left] error.info=LoginFailed[/align]

3、创建struts.properties配置文件,保存到src路径下面。此配置文件的作用就是将messageResource.properties在struts.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一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: