年前在上海静静等待回家的日子 , 闲来无事,在好友李三年的友情提示下,写了这篇Struts2的入门级的文章,希望能对Struts2初学者有一定帮助。
/* 赏心悦目的注释 ,凡是注释里的内容,骨灰级的朋友可一跃而过。*/
闲话少说进入正题
一、开发环境的搭建
1、JDK的安装与环境配置
2、Tomcat的安装与环境配置
3、Myeclipse的安装与环境配置(囧轻轻鄙视一下自己的盗版行为 囧 )
/* 赏心悦目的注释
读到这里,如果你激情万千,开始准备去完成这第一步里所有的内容,那么笔者建议你还是停止阅读此篇文章,抓紧时间,从Java基础学起,祝你旅途愉快^-^
*/
二、Struts2的下载与安装
下载地址:http://struts.apache.org/download.cgi#struts216
解压缩后的目录包含:apps、docs、lib、src四个文件夹和一堆文本文档。
/*赏心悦目的注释
apps里包含了5个war包,可以直接部署在tomcat里运行,需要说明的是,运行Struts2,要求JDK5.0及以上版本,tomcat5.5及以上版本。这5个应用程序是我们学习Struts2的好DEMO,一些不负责的教材就是拿这些项目的源码充斥起来的。
docs是Struts2的帮助文档,全英文的,看不懂英文的战友还要加强对英文的学习才行啊,想学好Java而英文不好最终吃亏的还是自己,我已经吃了很多。
lib里包含运行Struts2程序所依赖的全部jar包。
src里包含此压缩包里全部源代码,采用maven管理,不熟悉maven战友们可以搜索相关资料进行学习,笔者也有专门文章对其进行讲解。
把压缩包解压缩到硬盘,你就顺利完成了安装过程,HOHO,是不是感觉被忽悠了,开个玩笑,其实大部分开源应用都是这样“安装”的,只不过有的需要一些环境变量的配置而已。
*/
三、创建一个山寨级Struts2应用程序
笔者的开发环境 :jdk1.6.0_04、tomcat6.0、eclipse3.3.1.1、MyEclipse6.0 (囧再一次轻轻鄙视一下自己的盗版行为 囧 )、Struts2.1.6、WindowsXP SP2
任务 :完成用户登陆验证,当用户名为Helloworld,密码为Helloworld,通过验证,页面进入index页面,若用户名或密码错误,页面跳回login页面,并给出提示信息。
1、创建一个Web project,在根目录下创建login.jsp,代码如下:
Jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>登录</title>
<style>*{margin:0px;padding:0px;font-size:12px;}</style>
</head>
<body>
<form action="login.action" method="post">
用户名:<input type="text" name="uname"/><br/>
密 码:<input type="password" name="upwd"/><br/>
<input type="submit" value="登录" />
</form>
</body>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>登录</title>
<style>*{margin:0px;padding:0px;font-size:12px;}</style>
</head>
<body>
<form action="login.action" method="post">
用户名:<input type="text" name="uname"/><br/>
密 码:<input type="password" name="upwd"/><br/>
<input type="submit" value="登录" />
</form>
</body>
</html>
熟悉Struts1的战友都熟悉,表单提交的action一般都是以.do的结尾,在Struts2中这个后缀被改成了.action,这与WebWork是一致的,从这点也反映出Struts2与WebWork的亲缘关系,当然,这个后缀也是可以通过配置来修改的。
修改tomcat根目录下conf/server.xml,在<Host>结点之间添加如下代码:
Xml代码
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/struts2app" docBase="H:\workspaceforMyEclipse\struts2app\WebRoot" reloadable="true" />
</Host>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/struts2app" docBase="H:\workspaceforMyEclipse\struts2app\WebRoot" reloadable="true" />
</Host>
/*赏心悦目的注释
path是项目虚拟路径,可以通过http://localhost:8080/struts2app访问项目的欢迎页,docBase是项目的物理路径,即项目在硬盘中的存放路径,路径中的WebRoot是项目的根目录,reloadable的参数值为true和false,当设置为true的时候,tomcat可以运行监测程序去监测项目文件是否有改动,如果有改动,tomcat会重新加载,当然,这样的效率是很低的,只有在开发中才这样设置,真正部署的时候,这个值是设为false的。经过这样修改,我们不需要将项目文件拷贝到tomcat的webapp目录下,tomcat启动后会自动加载Context结点项目,方便了我们的开发。
*/
修改WebRoot/WEB-INF/web.xml,修改项目欢迎页。
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">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?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">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
现在启动tomcat,访问http://localhost:8080/struts2app/
如果看到login.jsp页面的内容,说明前面的配置是正确的。
停止tomcat服务。
2、添加Struts2配置
在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列5个jar包
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。这5个jar包是我们运行Struts2应用程序所依赖的最基本的5个jar包。
在工程的src目录下我们创建一个struts.xml文件,文件代码如下:
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="default" extends="struts-default">
<action name="login" class="com.songlu.LoginAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
<?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="default" extends="struts-default">
<action name="login" class="com.songlu.LoginAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
/*赏心悦目的注释
关于这个文件的作用以及各个结点和结点属性的含义,笔者觉得现在解释只会扰乱初学者的思路,挫伤学习积极性,增加学习的恐惧。笔者认为,按照笔者的讲述让初学者第一个Struts2应用程序成功跑起来才是更重要的,这会对初学者产生极大的成就感,这种成就感是很有战略意义的。
笔者有专门的文章对其进行介绍,但不建议你现在就去阅读和理解他们,至少你应该先完成现在这个应用程序,在感受成就感的同时,泡一杯咖啡,然后慢慢阅读我写的相关文章。
*/
在src目录下,我们创建一个名为LoginAction的类,他的包名com.songlu
/*赏心悦目的注释
如果你是个愤青,或对宋陆不满,你可以改成com.liyuchun或者com.furong,当然,你要同时修改之前写的struts.xml中相关代码,但是,建议你还是不要改,你可以瞄一瞄页面左上角的那个头像,相信他还是比liyuchun、furong要顺眼很多。
*/
LoginAction的代码如下:
Java代码
package com.songlu;
public class LoginAction {
private String uname;
private String upwd;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public String execute(){
return "success";
}
}
package com.songlu;
public class LoginAction {
private String uname;
private String upwd;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public String execute(){
return "success";
}
}
修改WebRoot/WEB-INF/web.xml,添加Struts2过滤器
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">
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?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">
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
在根目录下创建login.jsp,代码如下:
Jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>主页</title>
</head>
<body>
欢迎你${uname}!
</body>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>主页</title>
</head>
<body>
欢迎你${uname}!
</body>
</html>
启动tomcat,请求:http://localhost:8080/struts2app/
这时候应该会报404错误,原因很简单,tomcat根本没有启动成功,而是报了一大堆异常。
Struts2 Unable to load configuration. - bean - jarWEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:46:178
是不是感觉又被忽悠了?别怪我啊战友们,这是apache的失误。按照官方文档说明,运行Struts2必须加载5个核心jar包,也就是咱们一开始拷贝的5个jar包,如果你用的是Struts2之前的版本是没有问题的,但是如果按照笔者所说去下载这个新版本,就会报如上错误,因为还需要加载另外两个jar包,可是官方的说明文档没有更新,笔者在试验的时候也在这里被晃了一下。
解决方案:在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列2个jar包
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。
重新启动tomcat,请求:http://localhost:8080/struts2app/
这个时候应该可以正常看到登陆页,如果还有异常,那你就要仔细检查之上步骤有没有遗漏或错误。
在用户名输入文本框内输入:李宇春,点击登陆按钮!
提交->欢迎你李宇春
至此,一个Struts2应用程序算是真正运行成功了。恭喜恭喜!同喜同喜!
接下来,你可以泡杯咖啡,然后去阅读一些关于struts.xml这个文件的文章资料,或者去阅读一些关于maven的文章资料。当你学累的时候,可以回来继续看本文章,完成应用程序剩余部分,即登陆的验证。
/* 赏心悦目的注释 ,凡是注释里的内容,骨灰级的朋友可一跃而过。*/
闲话少说进入正题
一、开发环境的搭建
1、JDK的安装与环境配置
2、Tomcat的安装与环境配置
3、Myeclipse的安装与环境配置(囧轻轻鄙视一下自己的盗版行为 囧 )
/* 赏心悦目的注释
读到这里,如果你激情万千,开始准备去完成这第一步里所有的内容,那么笔者建议你还是停止阅读此篇文章,抓紧时间,从Java基础学起,祝你旅途愉快^-^
*/
二、Struts2的下载与安装
下载地址:http://struts.apache.org/download.cgi#struts216
解压缩后的目录包含:apps、docs、lib、src四个文件夹和一堆文本文档。
/*赏心悦目的注释
apps里包含了5个war包,可以直接部署在tomcat里运行,需要说明的是,运行Struts2,要求JDK5.0及以上版本,tomcat5.5及以上版本。这5个应用程序是我们学习Struts2的好DEMO,一些不负责的教材就是拿这些项目的源码充斥起来的。
docs是Struts2的帮助文档,全英文的,看不懂英文的战友还要加强对英文的学习才行啊,想学好Java而英文不好最终吃亏的还是自己,我已经吃了很多。
lib里包含运行Struts2程序所依赖的全部jar包。
src里包含此压缩包里全部源代码,采用maven管理,不熟悉maven战友们可以搜索相关资料进行学习,笔者也有专门文章对其进行讲解。
把压缩包解压缩到硬盘,你就顺利完成了安装过程,HOHO,是不是感觉被忽悠了,开个玩笑,其实大部分开源应用都是这样“安装”的,只不过有的需要一些环境变量的配置而已。
*/
三、创建一个山寨级Struts2应用程序
笔者的开发环境 :jdk1.6.0_04、tomcat6.0、eclipse3.3.1.1、MyEclipse6.0 (囧再一次轻轻鄙视一下自己的盗版行为 囧 )、Struts2.1.6、WindowsXP SP2
任务 :完成用户登陆验证,当用户名为Helloworld,密码为Helloworld,通过验证,页面进入index页面,若用户名或密码错误,页面跳回login页面,并给出提示信息。
1、创建一个Web project,在根目录下创建login.jsp,代码如下:
Jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>登录</title>
<style>*{margin:0px;padding:0px;font-size:12px;}</style>
</head>
<body>
<form action="login.action" method="post">
用户名:<input type="text" name="uname"/><br/>
密 码:<input type="password" name="upwd"/><br/>
<input type="submit" value="登录" />
</form>
</body>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>登录</title>
<style>*{margin:0px;padding:0px;font-size:12px;}</style>
</head>
<body>
<form action="login.action" method="post">
用户名:<input type="text" name="uname"/><br/>
密 码:<input type="password" name="upwd"/><br/>
<input type="submit" value="登录" />
</form>
</body>
</html>
熟悉Struts1的战友都熟悉,表单提交的action一般都是以.do的结尾,在Struts2中这个后缀被改成了.action,这与WebWork是一致的,从这点也反映出Struts2与WebWork的亲缘关系,当然,这个后缀也是可以通过配置来修改的。
修改tomcat根目录下conf/server.xml,在<Host>结点之间添加如下代码:
Xml代码
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/struts2app" docBase="H:\workspaceforMyEclipse\struts2app\WebRoot" reloadable="true" />
</Host>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/struts2app" docBase="H:\workspaceforMyEclipse\struts2app\WebRoot" reloadable="true" />
</Host>
/*赏心悦目的注释
path是项目虚拟路径,可以通过http://localhost:8080/struts2app访问项目的欢迎页,docBase是项目的物理路径,即项目在硬盘中的存放路径,路径中的WebRoot是项目的根目录,reloadable的参数值为true和false,当设置为true的时候,tomcat可以运行监测程序去监测项目文件是否有改动,如果有改动,tomcat会重新加载,当然,这样的效率是很低的,只有在开发中才这样设置,真正部署的时候,这个值是设为false的。经过这样修改,我们不需要将项目文件拷贝到tomcat的webapp目录下,tomcat启动后会自动加载Context结点项目,方便了我们的开发。
*/
修改WebRoot/WEB-INF/web.xml,修改项目欢迎页。
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">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?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">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
现在启动tomcat,访问http://localhost:8080/struts2app/
如果看到login.jsp页面的内容,说明前面的配置是正确的。
停止tomcat服务。
2、添加Struts2配置
在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列5个jar包
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。这5个jar包是我们运行Struts2应用程序所依赖的最基本的5个jar包。
在工程的src目录下我们创建一个struts.xml文件,文件代码如下:
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="default" extends="struts-default">
<action name="login" class="com.songlu.LoginAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
<?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="default" extends="struts-default">
<action name="login" class="com.songlu.LoginAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
/*赏心悦目的注释
关于这个文件的作用以及各个结点和结点属性的含义,笔者觉得现在解释只会扰乱初学者的思路,挫伤学习积极性,增加学习的恐惧。笔者认为,按照笔者的讲述让初学者第一个Struts2应用程序成功跑起来才是更重要的,这会对初学者产生极大的成就感,这种成就感是很有战略意义的。
笔者有专门的文章对其进行介绍,但不建议你现在就去阅读和理解他们,至少你应该先完成现在这个应用程序,在感受成就感的同时,泡一杯咖啡,然后慢慢阅读我写的相关文章。
*/
在src目录下,我们创建一个名为LoginAction的类,他的包名com.songlu
/*赏心悦目的注释
如果你是个愤青,或对宋陆不满,你可以改成com.liyuchun或者com.furong,当然,你要同时修改之前写的struts.xml中相关代码,但是,建议你还是不要改,你可以瞄一瞄页面左上角的那个头像,相信他还是比liyuchun、furong要顺眼很多。
*/
LoginAction的代码如下:
Java代码
package com.songlu;
public class LoginAction {
private String uname;
private String upwd;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public String execute(){
return "success";
}
}
package com.songlu;
public class LoginAction {
private String uname;
private String upwd;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public String execute(){
return "success";
}
}
修改WebRoot/WEB-INF/web.xml,添加Struts2过滤器
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">
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?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">
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
在根目录下创建login.jsp,代码如下:
Jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>主页</title>
</head>
<body>
欢迎你${uname}!
</body>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>主页</title>
</head>
<body>
欢迎你${uname}!
</body>
</html>
启动tomcat,请求:http://localhost:8080/struts2app/
这时候应该会报404错误,原因很简单,tomcat根本没有启动成功,而是报了一大堆异常。
Struts2 Unable to load configuration. - bean - jarWEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:46:178
是不是感觉又被忽悠了?别怪我啊战友们,这是apache的失误。按照官方文档说明,运行Struts2必须加载5个核心jar包,也就是咱们一开始拷贝的5个jar包,如果你用的是Struts2之前的版本是没有问题的,但是如果按照笔者所说去下载这个新版本,就会报如上错误,因为还需要加载另外两个jar包,可是官方的说明文档没有更新,笔者在试验的时候也在这里被晃了一下。
解决方案:在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列2个jar包
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。
重新启动tomcat,请求:http://localhost:8080/struts2app/
这个时候应该可以正常看到登陆页,如果还有异常,那你就要仔细检查之上步骤有没有遗漏或错误。
在用户名输入文本框内输入:李宇春,点击登陆按钮!
提交->欢迎你李宇春
至此,一个Struts2应用程序算是真正运行成功了。恭喜恭喜!同喜同喜!
接下来,你可以泡杯咖啡,然后去阅读一些关于struts.xml这个文件的文章资料,或者去阅读一些关于maven的文章资料。当你学累的时候,可以回来继续看本文章,完成应用程序剩余部分,即登陆的验证。
发表评论
-
Struts标签 下拉框 迭代
2009-09-16 09:08 1589案例: select latnid from t_latn; ... -
控制WebLogic解压war包
2009-09-14 08:28 1723在开发web应用时,如果通过weblogic的控制台部署war ... -
线程的基本用法
2009-06-25 11:04 813实现多线程的方法有3种: 1.继承thread类 eg : ... -
Timer的用法
2009-06-25 09:07 1061使用Timer和TimerTask组合 最后 ... -
线程的通俗解释
2009-06-24 08:26 1314但是进程的概念相� ... -
进程通俗解释
2009-06-24 08:21 878进程(Process)指操作系统中一个独立运行的程序。例 ... -
java 调用存储过程 和 PreperStmt的用法
2009-06-14 10:54 1274PreparedStatement 的用法PreparedSt ... -
MyEclipse更改快捷键
2009-06-14 08:22 2307MyEclipse安装完成之后,有一个很常用的快捷键Conte ... -
java最大公约数算法
2009-05-20 20:06 1852最大公约数算法:如果r是a和b之间相除后的余数,则a和b之间的 ... -
创建文件,并填写内容的几种方式
2009-05-15 08:23 976import java.io.*; public class ... -
java 存储过程传递数组类型的参数
2009-05-11 08:06 1504import java.sql.*; public cla ... -
javascript onpropertychange
2009-05-09 14:38 1084<!DOCTYPE HTML PUBLIC " ... -
java.math.BigDecimal的精度问题
2009-05-09 11:21 13511. String myMoney = "100 ... -
JAVA设计模式
2009-04-24 09:15 15101、FACTORY(工厂模式) 2、BUILDER(建造模式 ... -
JavaMail
2009-04-03 09:00 717package com.tom; import org.ap ... -
javascript 动态增加删除表格
2009-02-28 09:19 804<!DOCTYPE HTML PUBLIC " ... -
在web.xml不认<taglib>解决办法:
2009-02-22 20:40 729在web.xml不认<taglib>解决办法: ... -
自己实现单点登录
2009-02-21 16:04 1050摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软 ... -
java多线程并发访问解决方案
2009-02-21 15:40 1432多线程并发访问解决方案 synchronized关键 ... -
JAVA字符串常用写法
2009-02-19 08:31 1483/** * Title: Java Bean 工 ...
相关推荐
这个压缩包文件的标题"1_Struts2入门与配置"表明它可能包含了Struts2框架的基础学习资料和配置文件,而“工具”标签可能意味着它包括了开发所需的库文件。 Struts2的核心功能包括动作调度、结果处理、异常处理和...
浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置_swf
浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置2
浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置
本讲主要介绍Struts2的基础知识以及如何进行入门配置。 首先,Struts2是Struts1的升级版,它继承了Struts1的优点并解决了其在灵活性和可扩展性上的不足。Struts2的核心是Action类,它处理用户请求并调用业务逻辑。...
本篇学习笔记将深入探讨Struts2的入门与配置,继续上一讲的内容。 首先,Struts2的基础入门涉及到以下几个核心概念: 1. **Action类**:在Struts2中,业务逻辑通常封装在Action类中。Action类是处理用户请求的主体...
NULL 博文链接:https://zhaolianyang.iteye.com/blog/859212
通过这个简单的入门案例,你可以学习到如何创建Action、编写配置文件、设计交互页面,并理解Struts2框架如何将所有这些组件协同工作。对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握...
入门Struts2,首先需要了解的是它的核心概念。Struts2的核心组件包括Action、Result、Interceptor(拦截器)等。Action是业务逻辑的执行者,负责处理用户请求;Result则定义了Action执行后的响应结果,如转发到一个...
这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...
4. `struts2-spring-plugin.jar`(如果与Spring框架集成) 创建Struts2配置文件`struts.xml`。该文件位于`src/main/resources`或`WEB-INF/classes`目录下,它定义了Action、结果类型、拦截器等配置。基本的`struts....
3. **Struts2配置文件(struts.xml)**: 这个XML文件是Struts2应用的核心,用于配置Action、结果类型、拦截器等。在这个例子中,你会看到如何定义一个Action,指定它的类和执行方法,以及可能的返回结果。 4. **...
### Struts2入门实例教程详解 ...通过以上步骤,我们不仅能够理解Struts2与Struts1在实现机制上的区别,还能掌握如何利用Struts2创建一个简单的Web应用程序。这为后续深入学习Struts2框架提供了坚实的基础。
6. ** strut2入门案例**:这个入门案例可能是创建一个简单的“Hello, World”程序,演示如何配置Struts2框架,创建Action类,编写对应的JSP页面,并在web.xml中进行必要的初始化设置。这个例子会帮助初学者快速理解...
教程名称:浪曦Struts2系列视频教程课程目录:【】1 Struts2入门与配置【】10 Struts2的核心 拦截器【】11 Struts2的核心 拦截器续【】12 Struts2的文件上传和下载【】13 Struts2的文件上传和下载续【】14 Struts2的...
- **集成iBatis**:探索Struts2与iBatis的集成方案。 - **集成jQuery**:介绍jQuery在Struts2中的应用,包括CSS操作、DOM操作等内容。 #### 十三、案例分析 - **投票管理系统**:通过具体的案例分析,展示了Struts...
本篇将深入讲解Struts2的基础知识和配置过程,帮助初学者快速入门。 首先,理解Struts2的核心概念是至关重要的。Struts2框架基于拦截器模型,通过一系列拦截器堆栈来处理HTTP请求,这些拦截器负责执行如验证、异常...
3. **配置文件**:Struts2使用`struts.xml`配置文件来定义Action类与URL的映射,以及Action的属性、结果页面等信息。这是Struts2应用的基础配置。 4. **拦截器(Interceptor)**:Struts2的拦截器机制允许在Action...