一个简单的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一下。
我也刚接触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一下。
相关文章推荐
- 一个简单登录的Struts2的示例
- 一个简单的Makefile示例
- 使用 JointCode.Shuttle 进行跨 AppDomain 通信的一个简单示例
- 一个Spring的beanFactory的简单实现示例(传智播客)
- 一个简单的 SQLite 的示例
- 【代码示例】 一个简单的Java死锁
- 自定义一个字节缓冲区的简单示例
- Skinned Mesh原理解析和一个最简单的实现示例
- 服务器端获取客户端动态添加的表格行数据的一个简单示例
- 一个简单的jquery进度条示例
- C#编写的一个发送邮件的简单示例
- Android 简单实现一个流式布局的示例
- 创建一个简单的WebPart应用示例
- 折半插入排序 一个简单示例
- 用一个简单示例来说明C#中的继承、封装和多态
- 对3DES加密的运用的一个简单示例
- Struts2国际化的简单示例
- 【java开发系列】—— struts2简单入门示例
- 利用PHP实现一个简单的用户登记表示例
- 利用struts2,mybatis,spring,三大框架写的一个简单的查询程序