首先配置struts
1,首先创建java web项目,然后倒入核心jar包在WEB-INF/lib目录下
这六个是jar包是基础,需要什么组件以后再添加,添加多了用不到会报错。
然后是配置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>
2,web.xml文件创建在WEB-INF目录下,右键该目录,选择文件,输入web.xml,完成创建,然后把上述内容输入进去。
3,创建并配置struts.xml文件。
struts.xml创建在src目录下。右键该目录,选择文件,输入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="default" namespace="/" extends="struts-default">
<action name="add" class="action.Ch11_1_Action">
<result name="+">/ch11_1_Positive.jsp</result>
<result name="-">/ch11_1_Negative.jsp</result>
</action>
</package>
</struts>
<action><result>标签内容是我自己试验例子书写的。namespace="/"是空间地址。StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Servlet不同,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的。
用“Action”类代替了“Servlet”,Action类可以是一个普通的类,其处理请求的方法也可以是一个普通方法(返回类型为String),该类在struts.xml中配置。
Struts2框架自动将请求参数的值注入给Action类中同名属性(借助于set方法),这样可以省略getParameter语句。
Action中的属性存储到请求范围内的特定属性(struts.valueStack)中,可通过EL表达式访问(调用get方法)。这样可以省略request.setAttribute语句。
Action中转发的输出页面在struts.xml中配置,这样可以省略forward语句。
配置完毕,struts就配置完了,然后就可以书写例子了。这里用教材上的加数求和例子。三个页面ch11_1_Input.jsp,ch11_1_Negative.jsp,ch11_1_Pogative.jsp三个view页面。都放在webRoot目录下
ch11_1_Input.jsp:输入加数页面.
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'ch11_1_Input.jsp' starting page</title>
</head>
<body>
<form action="add" method="post">
请输入两个数:<br>
<br> 加数:<input name="x" /><br> 被加数:<input name="y">
<br> <input type="submit" value="求和">
</form>
</body>
</html>
ch11_1_Negative.jsp:返回代数和为负数的例子
<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'ch11_1_Negative.jsp' starting page</title>
</head>
<body>
代数和为负数:<s:property value="sum"/>
</body>
</html>
ch11_1_Pogative.jsp:返回代数和为非负数的例子。
<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'ch11_1_Positive.jsp' starting page</title>
</head>
<body>
代数和为非负数:<s:property value="sum"/>
</body>
</html>
然后写action。我们在src目录下创建package。名字为action。并将Ch11_1_Action.java创建并输入控制运算的内容。(本文件创建时候,C是大写)内容为属性值,get,set方法,以及执行运算的函数execute() 。如此一来,所用工作结束,然后开启tomcat并配置服务,在浏览器输入地址,就可以了。
package action;
public class Ch11_1_Action {
private int x;
private int y;
private int sum;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
public String execute() {
sum = x + y;
if (sum >= 0) {
return "+";
} else {
return "-";
}
}
}
最后,在浏览器运行下就可以了。(配置tomcat以及如何书写路径,都是常规web项目技能,不再赘述)