• Maven+Struts2初试


    一、Maven

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

    这里用Maven来控制jar包的引入,之前一直使用手动考入的方式来控制,后来发现了Maven,爱不释手,就一直没停过,觉得很方便。

    二、Struts2

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

    由于是初学的javaweb,并且算是程序员中的大龄了,心比较焦急,开始的时候,一门心思想直接杀入SSH(spring+Struts2+hibernate)或SSM(spring+springMvc+mybatis)框架,但是发现欲速而不达。虽然能够根据网上给的直观例子,照模照样的画葫芦,但是却都是些一知半解。所以想自己重新一步步来,就先从Struts2开始吧。

    三、搭建

    1、eclipse新建maven项目

    2、修改maven控制jar包pox.xml配置文件,引入相关的Struts2的核心jar包和其他的jar包

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4   <groupId>com.mdf</groupId>
     5   <artifactId>Struts2Demo</artifactId>
     6   <packaging>war</packaging>
     7   <version>0.0.1-SNAPSHOT</version>
     8   <name>Struts2Demo Maven Webapp</name>
     9   <url>http://maven.apache.org</url>
    10   <dependencies>
    11     <dependency>
    12       <groupId>junit</groupId>
    13       <artifactId>junit</artifactId>
    14       <version>3.8.1</version>
    15       <scope>test</scope>
    16     </dependency>
    17     <!-- 使用maven 引入 struts2 jar包 -->
    18     <dependency>
    19         <groupId>org.apache.struts</groupId>
    20         <artifactId>struts2-core</artifactId>
    21         <version>2.3.1.2</version>
    22     </dependency>
    23     <!-- 引入server-api包 -->
    24     <dependency>
    25         <groupId>javax.servlet</groupId>
    26         <artifactId>javax.servlet-api</artifactId>
    27         <version>3.0.1</version>
    28     </dependency>
    29   </dependencies>
    30   <build>
    31     <finalName>Struts2Demo</finalName>
    32   </build>
    33 </project>
    View Code

    3、配置struts.xml文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE struts PUBLIC  
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
     4     "http://struts.apache.org/dtds/struts-2.0.dtd">  
     5     
     6     <struts>
     7         <package name="Student"  namespace="/student"  extends="struts-default">
     8             <action name="test"  class="com.mdf.action.StudentAction">
     9                 <result name="success">/WEB-INF/context/success.jsp</result>
    10                 <result name="failed">/context/failed.jsp</result>
    11             </action>
    12         </package>
    13     </struts>
    View Code

    这里要注意:由于Struts2在读取配置文件的时候,默认以struts.xml的文件名来读取。如果这里自己改变文件名,可能会导致异常出错。

    class:对应实际的包中的action的class。

    result:对action中的返回值,进行相关的页面跳转。

    4、配置web.xml文件

     1 <web-app>
     2   <display-name>Archetype Created Web Application</display-name>
     3   <welcome-file-list>
     4       <welcome-file>index.jsp</welcome-file>
     5   </welcome-file-list>
     6   
     7   <!-- struts2控制核心 -->
     8   <filter>
     9       <filter-name>struts2</filter-name>
    10       <filter-class>
    11            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 
    12       </filter-class>
    13   </filter>
    14   <filter-mapping>
    15       <filter-name>struts2</filter-name>
    16       <url-pattern>/*</url-pattern>
    17   </filter-mapping>
    18 </web-app>
    View Code

    5、新建相关action类和bean类

    action类:

     1 package com.mdf.action;
     2 
     3 import com.mdf.bean.Student;
     4 import com.opensymphony.xwork2.Action;
     5 
     6 public class StudentAction implements Action{
     7     
     8     public  String execute(){
     9         Student.setName("madifei");
    10         if(Student.getName()=="madifei"){
    11             return "success";
    12         }else{
    13             return "failed";
    14         }
    15     }
    16 
    17 }
    View Code

    bean类:

     1 package com.mdf.bean;
     2 
     3 public class Student {
     4     
     5     private static String name;
     6     private static int age;
     7     public static String getName() {
     8         return name;
     9     }
    10     public static void setName(String name) {
    11         Student.name = name;
    12     }
    13     public static int getAge() {
    14         return age;
    15     }
    16     public static void setAge(int age) {
    17         Student.age = age;
    18     }
    19 
    20 }
    View Code

    这里只是简单的进行Struts2的配置,所以bean类和action也只是做了两个简单的。

    6、新建JSP显示页面

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     这是success页面
    11 </body>
    12 </html>
    View Code

    返回的success.jsp页面,对于failed的页面没做配置,原理一样,新增页面和struts的跳转路劲就好了。

  • 相关阅读:
    打印二叉树和为某一值的路径
    顺时针打印数组
    算术表达式
    堆内存与栈内存详解
    【腾讯校招在线考试附加题】将一个10进制数转换为四位定长的36进制数
    反转链表
    记录github出错及解决方案
    centos7操作防火墙
    无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]解决方法
    MyBatis联表查询——别名方式
  • 原文地址:https://www.cnblogs.com/Nouno/p/5748063.html
Copyright © 2020-2023  润新知