在web.xml文件中加过滤器filter;filter、filter-name、filter-class、filter-mapping、url-pattern
在struts.xml中加package,每个package(name、namespace)下可以有多个action(name、class),action下面是有子标签result(name、type)
4.创建视图result.jsp:(右键WebContent、JSP File
3.配置strut.xml的映射
2.strut.xml:在Java Resources中的src下右键、other、搜索xml创建,名称为strut.xml,约束用准备好的复制上去
3.创建action,注意继承项目里的AcitonSupport(通过Browse...搜索
4.不指定方法名的情况用struts2的默认方法,o/i Methods 中的execute();
可以在方法中打印一个输出并返回成功的映射(界面)如
public String execute() throws Exception {
System. out. println("执行Action");
return SUCCESS;
}
注意事项:创建Dynamic web project 记得勾选web.xml
把需要用到的包放入WebContent(默认名)WEB-INF中的lib下在项目名(HelloWorld)右键、BuildPath、AddJar
步骤1.配置web.xml:
<filter>标签中<filter-name>struts2</filter-name>与
<filter-mapping>标签中
<filter-name>struts2</filter- name>
一致,<filter-class></filter-class>中的内容写好后按下Ctrl + 鼠标左键如果能跳转到Class File Editor页面说明写入正确<url-pattern>/*</ur1- pattern>表示所有路径都需要过滤
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
</struts>
导入包
web.xml添加
<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>*.action</url-pattern> </filter-mapping>
.src下创建struts.xml
<struts> <package name="default" namespace="/" extends="struts-default"> <action name="helloworld" class="com.action.HelloWorldAction"> <result>/result.jsp</result> </action> </package> </struts>
创建action类
public class HelloWorldAction extends ActionSupport { @Override public String execute() throws Exception { System.out.println("HelloWorldAction"); return SUCCESS; } }
版本:struts-2.5.16
1.代码:<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
2.路径调整了:web.xml包路径
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
3.多导个log4j个jar包
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
为什么我写了ng,Ctrl点击不跳转
Struts2是基于MVC设计模式的Web应用程序框架,能节省Web应用开发时间
Struts实例程序创建步骤(工具Myeclipse10+tomcat7+jdk1.7):
1、创建Web Project
2、导入jar包,在src下建立struts.xml
3、打开web.xml,添加
<filter> <filter-name>[过滤器名]</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter>
<filter-mapping> <filter-name>[过滤器名]</filter-name> <url-pattern>/*</url-pattern> <!-- /*代表过滤所有路径 --> </filter-mapping>
4、打开struts.xml,假如文档类型定义DTD(用myeclipse直接添加struts后不用会搜懂添加DTD)
5、创建action,新建class(命名hello)继承ActionSupport类,默认执行ActionSupport的execute() 执行成功返回SUCCESS.
6、在struts.xml中配置action
<package name="default" namespace="/" extends="struts-default"> <!-- package name="default" 是默认包名,可以自定义,用于被其他包继承 namespace="/" 命名空间,可以指定可以默认 extends="default" 该包所继承的包 --> <action name="hello" method="" class="包全名.hello"> <result name="">/result.jsp</result> <!-- result 的name默认是SUCCESS 也可以是其他action中传回的字符串 --> </action> </package>
7、在WebRoot下创建result.jsp
8、发布运行项目,打开浏览器访问http://localhost:8080/[项目名]/hello.action。
注:myeclipse最高支持jdk1.7+tomcat7.x
本机最初配置是jdk1.8,运行项目后报错如下
The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
@Struts2---代码实现
1.要导入的包:(共9个)
commons-fileupload(上传下载包)
commons-io(输入输出包)
commons-lang 3-3.2(基础包)
commons-logging(日志包)
freemarker(模板引擎,通过模板生成文本输出的通用工具)
structs2-core(核心包)
xwork-core(一些类基于xwork)
ognl(表达式)
javassist-3.11.0.GA.jar(解析java类文件的一个包)
2.配置web.xml文档
web项目在启动tomcat时第一个启动的文件就是web.xml
首先定义过滤器
<filter>
<filter-name>struct2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
这里写完后按住ctrl点击鼠标左键如果可以跳转则证明正确
</filter>
filter的映射
<filter-mapping>
<filter-name>struct2</filter-name>
<url-pattern>/*</url-pattern>
/*是所有的都需要过滤
</filter-mapping>
映射与文件的filter-name应该保持一致
3.在src中创建struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
</struts>
4.创建action包
创建action类让其继承ActionSupport
Struts2中有一个默认的方法不指定方法名的话有一个execute()方法
之后去配置struts.xml中的action文件
5.注意点
编译环境问题,类名问题,导包问题
需要的几个包
多看两次
<filter><filter-name><>
tomcat启动web项目时第一个启动文件就是web.xml
myEclipse快速创建struts2项目
一个包可以包含多个action
重写execute方法
约束
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
在 java resources -> src 下创建struts的核心文件 struts.xml
/* 表示所有路径都过滤
上下2个fiter-name内容要一致
ctrl+左键 单击,检查是否拼写正确
在struts的lib目录里选择要用的jar包
创建项目后,需要引入相关jar包
鼠标所示也是servlet的版本