【Struts2】创造一个最简单、最基本的Struts2工程

目的:创造一个相当简单的login.jsp判断用户名与密码是否都是a,是则显示welcome,不是则显示error

【Struts2】创造一个最简单、最基本的Struts2工程_第1张图片


基本算法思想:

login.jsp得到参数之后,扔到Loginaction.java文件进行检验,Loginaction.java处理之后,扔出返回值给struts.xml,之后struts.xml根据返回值确定要返回到error.jsp还是welcome.jsp。

而用户看起来就是login.jsp到error.jsp或者welcome.jsp。


一、准备工作

首先,在Eclipse创造一个新的Web工程

然后直接使用已经配置已配置好Struts2.2.1GA的WEB-INF替换掉原工程的WEB-INF文件夹,

已配置好Struts2.2.1GA的WEB-INF下载地址的http://download.csdn.net/detail/yongh701/7937631

毕竟自己去编辑web.xml文件,然后复制相应的包进入工程十分麻烦。

今天我个人就弄了很久,从排查Struts2的lib版本开始,试过2.0.11也试过2.3等等的版本都不行,再从网上查资料发现不同版本的Struts2的web.xml编写方式是不同的。于是对web.xml进行了多次的改写,然而在Tomcat7.0也好Tomcat6.0的服务器环境报错依旧。后来拿走别人已经弄好的Struts2工程下的WEB-INF替换掉自己工程下的WEB-INF,立竿见影,药到病除。

既然每次新建Struts工程都要重复配置一番,可不直接复制替换,一是省时间,二是省得不同的Struts2包、Tomcat、web.xml版本之间冲突。


二、在WebRoot或者WebContent编写login.jsp、error.jsp、welcome.jsp

error.jsp、welcome.jsp很简单,就是在BODY中放入”错误“与”欢迎“二字。

而login.jsp与普通的jsp没什么特别,就是一个普通的表单,只是跳转的部分写成login.action,其他的名称也没问题,只是一定要.action结尾,代码如下:

<%@ page language="java" contentType="text/html;charset=utf-8"%>
<html>
	<head>
		<title>登陆页面</title>
	</head>
	<body>
		<h3>
			用户登录
		</h3>
		<!--关键是在这里,跳转给到一个名为login的action处理  -->
		<form action="login.action" method="post">
			<table>
				<tr align="center">
					<td>
						用户名:
						<input type="text" name="username" />
					</td>
				</tr>
				<tr align="center">
					<td>
						密码:
						<input type="password" name="password" />
					</td>
				</tr>
				<tr align="center">
					<td colspan="2">
						<input type="submit" value="提交" />
						<input type="reset" value="重置" />
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>

三、编写处理action的Java文件

右击src选择New->Package。之后把包的名称命名为com.ascent.struts2.action,其他名称也没问题的。

再右击这个包,创造一个Java文件,也就是新建一个Class

代码如下:

package com.ascent.struts2.action;

public class LoginAction {

	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public String getPassword() {
		return password;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String execute() {
		if ((getUsername().equals("a")) && (getPassword().equals("a"))) {
			return "success";
		}
		return "error";
	}
}

其中,在没有编写任何代码之前,程序头的包名已经存在。这段代码真正有用的是exexute()方法,判断输入的用户名与密码是否分别都为A,如果都是A,则打回一个success给struts.xml,否则打回一个error。

至于前面冗长的私有变量的声明与完整的构造函数,暂时以我的水平看起来是必不可少的。因为我观察其余的Struts工程的java处理文件,都是这样编写的。

四、编写整个工程的核心文件:struts.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
	<!-- 所谓的“指定Struts 2配置文件的根元素”,这段东西不一定要理解,但必须有,不然过不了tomcat的编译 -->
<struts>
	<package name="struts2" extends="struts-default">
		<action name="login" class="com.ascent.struts2.action.LoginAction">
		<!-- 声明叫login的那个action的处理文件是com.ascent.struts2.action.LoginAction -->
			<result name="error">/error.jsp</result>
			<result name="success">/welcome.jsp</result>
		</action>
	</package>
</struts>

代码上的注释已经很明了了,如果struts.xml得到了返回值result name是error就跳转到根目录下的error.jsp页面,反之就是welcome.jsp页面

至此,一个小小的Struts2工程开发完毕。

要想深入了解相关的利用,请参考各种教科书在编程示例之前的冗长理论。

你可能感兴趣的:(【Struts2】创造一个最简单、最基本的Struts2工程)