zoukankan      html  css  js  c++  java
  • 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>

    好了,测试大告成功!

  • 相关阅读:
    ThreadLocal 详解
    外键的约束(Mysql、PostgreSQL)
    Linux命令中,$、#、@、0、1、2、*、?的作用
    $.ajax 方法参数总是记不住,在这里记录一下
    SVN提示https证书验证失败问题svn: E230001: Server SSL certificate verification failed:
    各类资源地址整合
    CentOS 7 上安装vim 解決 centos -bash: vim: command not found
    Beyond Compare 4提示已经过了30天试用期,破解方式,亲测可用
    Django 04 模板标签(if、for、url、with、autoeacape、模板继承于引用、静态文件加载)
    Django 03 模板路径、模板变量、常用的过滤器
  • 原文地址:https://www.cnblogs.com/hx1098/p/9490663.html
Copyright © 2011-2022 走看看