目录
4、子控制器中获得request,response,session对象
①通过类ServletActionContext获得request,response
一、概念
基于MVC设计模式的web框架,Struts2作为控制器Controller来建立模型与视图的数据交互。
在三层架构中属于表示层。
二、入门
1、配置过滤器
创建的为maven项目,所以项目结构如下图
在WebContent下的web.xml中配置Struts2,在自定义mvc阶段配置的是中央控制器,在这里概念
相同,一点小区别是Struts2配置的是过滤器。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>Maven_test</display-name>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
</web-app>
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter是如何得到的?
这个是过滤器的全路径,maven已将帮我们自动下载了Struts2的核心jar包。我们需要在prm.xml中
添加依赖让maven帮我们下载Struts2相关jar包。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.13</version>
</dependency>
怎么判断jar包下载成功?在Maven Dependencies下面可以看到maven帮我们从仓库中下载的jar。
2、动态调用方法
TestAction.java
package com.zwf.web;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.zwf.Po.User;
public class TestAction extends ActionSupport implements ModelDriven<User>{
private User u = new User();
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public User getModel() {
return u;
}
public String add() throws Exception {
System.out.println("add()...");
System.out.println(u);
return "bookEdit";
}
public String del() throws Exception {
System.out.println("del()...");
System.out.println(u);
return "bookEdit"