零、参考博客
1、Struts框架入门教程
2、Struts 2.5.10.1配置
4、Struts2.5+eclipse+tomcat8.5配置
一、创建web工程
老套路,如下所示:
二、下载Struts 2.5.20 jar
1、https://struts.apache.org/download.cgi#struts2520
2、从struts-2.5.20-all\struts-2.5.20\lib 中找到下面几个jar,添加到web工程的lib中,(不要将.jar包全部都添加进去,都添进去反而报错)
附注:与Struts2.3比起来少了一个xwork-core-2.3.34.jar,多了一个log4j-api-2.7.jar。这是因为xwork-core-2.3.34.jar已经整合到Struts2-core中了,如果没有导入log4j-api-2.7jar的话,在web.xml和struts.xml都配置正确的情况下,会报出以下的错误:
三、新建 action类:HelloWorldAction.java
package com.ews.cn; public class HelloWorldAction { private String name; public String execute() throws Exception { System.out.println("getName:" + getName()); if (getName().equals("") || getName() == null) {
return "error";
} else {
return "success";
}
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
四、新建 struts.xml
方法是:选中项目——右键——新建——其他,在搜索框内输入xml,然后选择: (注意一定要将该xml文件命名为:struts.xml,不能出错。)
但是在新生成的xml文档中只有版本信息,因此还需要将以下内容复制到xml文档中。
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
这样eclipse才会出现提示。以上需要复制的内容可以从Struts目录下打开apps文件夹,其中有两个war包,随便其中一个war包解压出来,依次打开WEB-INF——src找到里面的Struts.xml就可以找到上面的这段话。
1、查看 struts-2.5.20\apps\WEB-INF\classes 里找到 struts.xml,为了让其在tomact的 classes中生成,必须放倒工程的src下面,不然找不到action。
2、对struts.xml进行修改:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd"> <struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="true" /> <package name="com.ews.cn" extends="struts-default">
<!-- <global-allowed-methods>add, update</global-allowed-methods> -->
<action name="hello" class="com.ews.cn.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
<result name="error">/Error.jsp</result>
</action>
</package>
</struts>
五、修改 web.xml,配置 struts 过滤器
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>HelloWorldStruts2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>
注意:
struts2.5 中的是 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter , 而不是 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
六、分别创建三个页面
1、index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!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>Insert title here</title>
</head>
<body>
<h1>Hello World Struts2</h1>
<form action="hello">
<label for="name">Please enter your name</label><br/>
<input type="text" name="name"/>
<input type="submit" value="Enter"/>
</form>
</body>
</html>
2、HelloWorld.jsp
<s:property value="name"/> 需要引入标签 <%@ taglib uri="/struts-tags" prefix="s"%> <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!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>Insert title here</title>
</head>
<body>
Hello World, Welcome! <s:property value="name"/>
</body>
</html>
3、Error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!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>Insert title here</title>
</head>
<body>
You did not have entered a name!
</body>
</html>
七、将Web应用部署到Apache Tomcat服务器上
八、测试
访问:http://localhost:8081/MyStruts2/index.jsp
1、正常输入name
2、name为空