struts2进阶【1】——环境配置

Struts2是基于MVC设计模式的流行和成熟的Web应用程序框架,是Struts的下一代产品,是在 struts
1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

本文作为一篇基本内容,一步步,来对struts2进行环境配置。

一、下载struts2

我用的是比较老的版本struts-2.2.1.1。

二、创建web项目,导入使用struts2所必须的jar包。

我使用的是MyEclipse 10。建立web项目,添加的包有:commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,commons-logging-api-1.1.4.jar,freemarker-2.3.16.jar,javassist-3.7.ga.jar,ognl-3.0.jar,struts2-core-2.2.1.1.jar,xwork-core-2.2.1.1.jar。注意:由于struts2版本的差异性,上面提到的包不一定满足所有版本的需求。配置完struts2后,请部署运行一下。根据运行时的错误提示来添加jar包解决问题。比如,配置struts-2.2.1.1时需要commons-io-1.3.2.jar包和javassist-3.7.ga.jar包,但是2.1版本就不需要这两个包。

三、编写struts.xml文件

在MyEclipse项目中的src根目录下建立一个struts.xml文件。(可以打开下载的struts2安装包里的apps目录下的任意一个jar包,在里面的WEB_INFR/src目录下,寻找struts.xml文件,将该文件复制进项目的src根目录下,将里面的内容清空(只留下<struts>标签和头部标签即可))

四、在web.xml中加入struts2 MVC框架启动配置

和struts.xml文件的生成类似,在struts2安装包里找到web.xml文件,将里面的<filter>和<filter-mapping>标签及其内容拷贝进项目中的web.config文件即可。

五、struts2实例--简单的登录例子

5.1 编写login.jsp页面。代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
	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>
	<form action="login">
		姓名:<input type="text" name="username"></br>
		密码:<input type="password" name="password"></br>
		年龄:<input type="text" name="age"></br>
		日期:<input type="text" name="date"></br>
		<input type="submit" value="submit">
	</form>
</body>
</html>

5.2 编写LoginAction类。代码如下:

package com.zhanglianhai.struts2;

import java.util.Date;

public class LoginAction {

	private String username;
	private String password;
	private int age;
	private Date date;

	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;
	}

	public String execute() {
		return "success";
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

}

5.3 配置struts.xml文件。代码如下:

<?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="struts2" extends="struts-default">

		<action name="login" class="com.zhanglianhai.struts2.LoginAction">
			<result name="success">/result.jsp</result>
		</action>

	</package>

</struts>

主要属性说明:

package-name:用于区别不同的package;必须是唯一的、可用的变量名;用于其它package来继承;

package--namespace:用于减少重复代码(和struts1比较);是调用action时输入路径的组成部分;

package--extends:用于继承其它package以使用里面的过滤器等东东;

action--name:用于在一个package里区别不同的action;必须是唯一的、可用的变量名;是调用action时输入路径的组成部分;

action--class:action所在的路径(包名+类名);

action--method:action所调用的方法名;

还有其它的属性,因为项目里没有用到,就没有解释。如有需要,请查阅相关文档。

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

<?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">

	<filter>
		<filter-name>struts2</filter-name>
		<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>

需要注意的东东:这个文件里,配置的过滤器的类是:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。和原来配置的类不一样。原来配置的类是:org.apache.struts2.dispatcher.FileDispatcher。这是因为,从struts-2.1.3以后,org.apache.struts2.dispatcher.FileDispatcher值被标注为过时。虽然仍然起作用,但是不建议使用。

5.5 根据struts.xml里配置的内容,还需要一个result.jsp页面。编写result.jsp页面。代码如下:

<%@ page language="java" contentType="text/html; charset=GB18030"
	pageEncoding="GB18030"%>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
	姓名:${requestScope.username}
	</br> 密码:${requestScope.password}
	</br> 年龄:${requestScope.age}
	</br> 日期:${requestScope.date}
</body>
</html>

经过上述步骤,登录实例已经编写完毕。

启动tomcat,在网页地址栏里输入:http://localhost:8080/项目的名称/login.jsp,打开登录页面。如下所示:

输入用户名:张连海,密码:Best!,年龄:27,日期:2015.02.15,点击登录,就来到了result.jsp页面。如下所示:

六、项目总结

简单的登录实例就完成了。这个例子里,还有一个需要注意的地方。LoginAction的execute方法的返回里,用到了“success”(小写)。所以,在struts.xml里配置的result的name属性里,必须写为小写。要不然,会报"Could
not find action or result"的错误。

时间: 2024-12-27 23:36:20

struts2进阶【1】——环境配置的相关文章

【学习Struts2】 -- Struts2.3.24.1环境配置及HelloWorld应用

在创建好WebProject后,就可以开始进行Struts2的环境配置,可以到Struts2官网下载,本环境使用struts-2.3.24.1版本. 首先导入必要的jar包到WebProject的/WebRoot/WEB-INF/lib下,具体jar包如下图所示: 接着修改web.xml文件,加入struts2的配置信息,文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xs

Struts2环境配置

1.导入jar包 2.拷贝修改配置文件struts.xml,web.xml 将struts.xml文件拷贝到src目录下,改为如下配置 <? xml version= "1.0" encoding = "UTF-8" ?> <! DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://

Struts2环境配置和登陆功能的实现

最近在学习SSH框架,通过用struts实现一个简单的登陆功能,来学习struts相关知识,着重了解了struts的配置. 1.在Eclipse下创建StrutsDemo项目,并将struts2所必须的jar包导入lib目录下. 主要有如下7个jar包:commons-fileupload.commons-io.freemarker.javassiat.ognl.struts2-core.xwork. 2.在src目录下建立一个struts.xml文件用于配置struts. struts.xml

【J2EE】Struts2+Tomcat开发环境部署,“Hello World”的实现

1.在官网下载Struts2的开发包 下载链接如下: http://120.203.229.30/5ff/2bc79/5ff16ae8698e1c321758a8f03a1bc0939892bc79/struts-2.3.16.3-all.zip?n=struts-2.3.16.3-all.zip http://mirrors.cnnic.cn/apache//struts/documentation/struts-2.3.16.3-docs.zip http://mirrors.cnnic.c

Struts2 常用的常量配置

在struts2-core-2.1.8.1.jar的org.apache.struts2包下面的default.properties资源文件里可以查到常用的常量配置,这些不用刻意的记住:忘记的时候可以查询.总结长用的的常量配置如下面: <!-- 设置url请求后缀 --> <constant name="struts.action.extension" value="do,action,html,htm"></constant>

SSH网上商城环境配置—浅析Hibernate

SSH网上商城虽然只有四天的视频,day01-04,不过边做项目边学习,还真是不容易,到现在为止已经进行了半个月了,才完成了两天的内容.其中光一个环境配置就花了十天左右的时间,包括配置文件添加.Jar包的添加等等.敲代码时再加上对开发环境的陌生,着实费了不少劲,调试也花费了好长时间,不过还好,现在已经熟悉一点了,做起来也顺手一些了,下面就简单汇总一下这里面用到的技术. SSH是集成框架,它是从三层的基础上发展而来的.三层中包括页面显示层.业务逻辑层.数据库操作层,SSH中同样也是,只不过每个层使

搭建Struts2的运行环境

搭建Struts2的运行环境1.新建一个web项目:2.将下载的struts-2.3.16.3-all.zip解压,打开已解压的文件夹找到apps 文件夹并打开,找到struts2-blank.war,对它进行解压,打开解压的 文件夹,可以看到WEB-INF文件夹,打开WEB-INF文件夹,找到lib文件 夹,里面有jar包,将所有的jar包复制到新建web项目下的WebRoot的 一个WEB-INF文件夹下的lib目录里: 3.再将之前解压过的struts2-blank.war(被解压的文件名

Kinect开发笔记之三Kinect开发环境配置具体解释

0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本号,SDK是Kinect for windows SDK 1.8版本号.尽管前一篇博文费了半天劲,翻译了2.0SDK的新特性.但我还是决定要回退一个版本号. 事实上我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本号的,并且Kinect从1.8之后就好像是一个分水岭,就比方win8和win7有非常大的区别,2.0版的Kinect和S

Kinect学习笔记之三Kinect开发环境配置详解

0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本,SDK是Kinect for windows SDK 1.8版本.虽然前一篇博文费了半天劲,翻译了2.0SDK的新特性,但我还是决定要回退一个版本. 其实我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本的,而且Kinect从1.8之后就好像是一个分水岭,就比如win8和win7有很大的差别,2.0版的Kinect和SDK都是相较