Struts2和MVC的简单整合

1.首先还是创建一个简单Maven的项目,导入jar包,

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.com</groupId>
    <artifactId>ZStructs</artifactId>
    <version>0.0.1-SNAPSHOT</version>


    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.16</version>
        </dependency>

        <!-- 导入jstl标签库 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- 导入spring的jar包整合 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>

        <!-- 导入spring-struts的整合插件包 -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>2.5.16</version>
        </dependency>

        <!-- 导入jbc的包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>

        <!-- 导入数据库驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.24</version>
        </dependency>

        <!-- 导入c3p0连接池 -->
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2.在web.xml文件下写入spring的相关配置

<?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">
    <display-name>ZStructs</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <filter>
        <filter-name>springMVC</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>springMVC</filter-name>
        <url-pattern>/*</url-pattern>//拦截所有哦请求
    </filter-mapping>
    
    
    <!-- spring配置 -->
    <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
     <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

</web-app>

3.在src/main/resources文件夹下创建一个名为:applicationContext.xml的文件,复制相关模版,

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">


    <!-- 扫描包 -->
    <context:component-scan base-package="cn.com.action"></context:component-scan>
    <!-- -->
    <context:component-scan base-package="cn.com.service"></context:component-scan>



    <!-- c3p0,数据库连接的 -->
    <bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="root"></property>
        <property name="password" value="root"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    </bean>
    <!-- jabctemplate 用于注入-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="c3p0"></property>
    </bean>

</beans>

4.创建一个entity实体

public class Note implements Serializable {
    private int id;
    private String context;
    private Date publishTime;
    private int likeCount;
    private int userId;
//get set这里就省略了

5.创建一个service接口:

public interface NoteService {
        
    
    public List<Note> selectAll(int userid);
    
    public int deleteById(int id);
}

6.创建实现类

@Repository//并打上标注
public class NoteIMPL implements NoteService {

    @Autowired //自动装配
    private JdbcTemplate jdbc;

    @Override 
    public List<Note> selectAll(int userid) {
        String sql = "select *  from note  where userid=?";
        Object[] pss = { userid };
        List<Note> list = jdbc.query(sql, pss, new BeanPropertyRowMapper(Note.class));
        return list;
    }

    @Override
    public int deleteById(int id) {
        String sql="delete from note where id= ?";
        int update = jdbc.update(sql, id);
        return update;
    }

}

7.创建一个Action

  查询列表的Action

@Controller
public class NoteAction {

    @Autowired
    private NoteService se;

    private List<Note> item;   //参数必须有get set 方法

    public List<Note> getItem() {
        return item;
    }

    public void setItem(List<Note> item) {
        this.item = item;
    }
     
    public String getNoteAll() {
        item = se.selectAll(1);
        return "suceess";
    }
}

 删除列表的Action

@Controller
public class DeleteAction {

    @Autowired
    private NoteService se;

    public String deleteBuId() {
        int f = se.deleteById(id);
        if (f > 0) {
            return "success";
        } else {
            return "error";
        }
    }

    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

}

 

8.在src/main/webapp/WEB-INF/demo/下创建一个jsp文件,

<body>
    <h1>列表信息</h1>
    <table>
        <tr>
            <th>id</th>
            <th>内容</th>
            <th>时间</th>
            <th>点赞数</th>
            <th>用户id</th>
            <th>操作</th>
        </tr>
        <c:forEach items="${item }" var="it">
            <tr>
                <th>${it.id }</th>
                <th>${it.context }</th>
                <th>${it.publishTime }</th>
                <th>${it.likeCount }</th>
                <th>${it.userId }</th>
                <th><a href="delete.do?id=${it.id }">删除</a></th>
            </tr>
        </c:forEach>
    </table>
</body>

 

9最后在src/main/resources文件夹下创建一个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>
    <!-- 这里的value可以有多个 -->
    <constant name="struts.action.extension" value="do,action"></constant>

    <package name="demo" extends="struts-default" namespace="/demo">
    
             <!-- noteAction -->
        <action name="notelist" class="noteAction" method="getNoteAll">
            <result name="suceess" type="dispatcher">/WEB-INF/demr/notelist.jsp
            </result>
        </action>

        <!-- delete -->
        <action name="delete" class="deleteAction" method="deleteBuId">
            <result name="success" type="redirectAction">
                <param name="namespace">/demo</param>
                <param name="actionName">notelist</param>
            </result>
            <result name="error" type="dispatcher">/WEB-INF/demr/error.jsp</result>
        </action>

    </package>

</struts>

 

好了,测试大告成功!

 

posted @ 2018-08-16 22:58  含笑1098  阅读(454)  评论(0编辑  收藏  举报