源码下载:
https://gitee.com/qq1350048638/SSH_hello
spring struts2目录结构
pom.xml 配置struts2核心包 jstl
<dependencies>
<!-- struts2核心包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.13</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build />
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" 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_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>ssh_13</display-name>
<!-- struts2配置filter控制器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<!-- struts2中,默认的请求后缀有两种,一个是action,一个是空 -->
<!-- <url-pattern>*.action</url-pattern> -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
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>
<!-- 修改struts2的默认后缀请求方式,struts.action.extension属性来源于struts2的属性文件
default.properties
如果是多个请求后缀,则用逗号隔开 -->
<constant name="struts.action.extension" value="do,html"/>
<!-- name:代表的是package名称,可以自定义,一般是按照系统的业务模块划分package
extends:代表的是继承struts2的核心配置文件,struts-default并不是struts2的核心配置文件名
而是struts-default.xml中的package对应的name值
namespace:代表的是命名空间,如果不写namespace值,则默认是/
-->
<package name="demo" extends="struts-default" namespace="/demo">
<!--hello.action
name:代表的是请求名,但是请求后缀无需填写
class:代表的是请求所处理的action类
method:接收接口请求的处理方法名,暂时写死:execute
-->
<action name="hello" class="com.xdl.action.HelloAction" method="execute">
<!--execute返回的result值:
name:代表的是execute返回的标志
type:代表的是根据标志,处理结果响应的类型,默认的是dispatcher
-->
<result name="success" type="dispatcher">/WEB-INF/jsp/hello.jsp</result>
</action>
<!-- 列表页面的跳转 -->
<action name="list" class="com.xdl.action.ListAction" method="execute">
<result name="success" type="dispatcher">/WEB-INF/jsp/list.jsp</result>
</action>
<!-- result默认值:class可以默认不写,执行的是ActionSupport类,其中menthod可以不写,默认是execute -->
<action name="hello2">
<!-- name:默认是success,type类型默认是dispatcher -->
<result>/WEB-INF/jsp/hello2.jsp</result>
</action>
</package>
</struts>
HelloAction类
public class HelloAction {
private String name;//全局变量 接收值--${name }
public String execute(){
if (StringUtils.isNotBlank(name)) {
}else{
name="struts2";
}
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
hello.jsp
<h1>Hello Struts2</h1>
<!-- ${name }name 通过HelloAction.java 里面name 传过来的值 -->
<h3>Hello ${name }</h3>
list.jsp
jstl 方式取值 <%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
<h1>列表展示</h1>
<table>
<c:forEach items="${listDept }" var="dept">
<tr>
<td>${dept.id }</td>
<td>${dept.deptName }</td>
<td>${dept.deptNote }</td>
</tr>
</c:forEach>
</table>
启动tomcat 访问
http://localhost:8088/ssh_13/demo/hello.do
http://localhost:8088/ssh_13/demo/hello.do?name=111