一、无表单跳转,直接通过struts.xml文件中<action></action>标签的请求名称访问。
1、新建一个名为TestStruts2的的Web项目。
2、导入struts2相应的jar包
3、配置web.xml文件(配置一个过滤器)
<?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" 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">
<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>
4、新建HelloAction.java
package Test;
public class HelloAction {
public String execute()
{
System.out.println("hello struts2");
return "success";
}
}
注:在servlet中默认执行service方法 。
在Struts2中默认执行execute方法 。
在servlet中service方法为HttpServletRequest , HttpServletResponse无返回值。
在Struts2中方法都是public返回值都是String 类型而且方法都是没有参数的。
5、配置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>
<!-- extends必须写,直接或间接继承struts-default name自定义 -->
<package name="hello" extends="struts-default">
<!-- name是请求名称,不要写/;class对应action完全限定名=包名+类名 -->
<action name="hello" class="Test.HelloAction">
<!-- result是结果集 name和对应action中的方法的返回值匹配,默认是success; -->
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
6、请求路径:
http://localhost:8080/TestStruts2/hello