• Struts 2.5.20 在Eclipse IDE中的配置和开发实例



    零、参考博客
    1、Struts框架入门教程
    2、Struts 2.5.10.1配置

    3、eclipse中搭建Struts2.5.16

    4、Struts2.5+eclipse+tomcat8.5配置


    注意: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 已经不存在了,需要修改为: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter


    一、创建web工程
    老套路,如下所示:

    二、下载Struts 2.5.20 jar 

    1、https://struts.apache.org/download.cgi#struts2520

    2、从struts-2.5.20-allstruts-2.5.20lib 中找到下面几个jar,添加到web工程的lib中,(不要将.jar包全部都添加进去,都添进去反而报错)

    附注:与Struts2.3比起来少了一个xwork-core-2.3.34.jar,多了一个log4j-api-2.7.jar。这是因为xwork-core-2.3.34.jar已经整合到Struts2-core中了,如果没有导入log4j-api-2.7jar的话,在web.xml和struts.xml都配置正确的情况下,会报出以下的错误:

    三、新建 action类:HelloWorldAction.java

    package com.ews.cn;
     
    public class HelloWorldAction {
     
        private String name;
     
        public String execute() throws Exception {
     
            System.out.println("getName:" + getName());
     
            if (getName().equals("") || getName() == null) {
                return "error";
            } else {
                return "success";
            }
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
    }

      四、新建 struts.xml

    方法是:选中项目——右键——新建——其他,在搜索框内输入xml,然后选择:    (注意一定要将该xml文件命名为:struts.xml,不能出错。)

    但是在新生成的xml文档中只有版本信息,因此还需要将以下内容复制到xml文档中。

    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">

    这样eclipse才会出现提示。以上需要复制的内容可以从Struts目录下打开apps文件夹,其中有两个war包,随便其中一个war包解压出来,依次打开WEB-INF——src找到里面的Struts.xml就可以找到上面的这段话。

    1、查看 struts-2.5.20appsWEB-INFclasses 里找到 struts.xml,为了让其在tomact的 classes中生成,必须放倒工程的src下面,不然找不到action。

    2、对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>
    <constant name="struts.enable.DynamicMethodInvocation"
    value="true" />
    
    <package name="com.ews.cn" extends="struts-default">
    <!-- <global-allowed-methods>add, update</global-allowed-methods> -->
    <action name="hello" class="com.ews.cn.HelloWorldAction" method="execute">
    <result name="success">/HelloWorld.jsp</result>
    <result name="error">/Error.jsp</result>
    </action>
    </package>
    </struts>

      

    五、修改 web.xml,配置 struts 过滤器

    <?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_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>HelloWorldStruts2</display-name>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    </filter>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    </web-app> 

    注意:

    struts2.5 中的是 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter , 而不是 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    六、分别创建三个页面 

    1、index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>Hello World Struts2</h1>
    <form action="hello">
    <label for="name">Please enter your name</label><br/>
    <input type="text" name="name"/>
    <input type="submit" value="Enter"/>
    </form>
    </body>
    </html>

      

    2、HelloWorld.jsp

    <s:property value="name"/> 需要引入标签 <%@ taglib uri="/struts-tags" prefix="s"%>
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    Hello World, Welcome! <s:property value="name"/>
    </body>
    </html>

      

    3、Error.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    You did not have entered a name!
    </body>
    </html>

      

    七、将Web应用部署到Apache Tomcat服务器上

     

    八、测试 

    访问:http://localhost:8081/MyStruts2/index.jsp

    1、正常输入name

    2、name为空

  • 相关阅读:
    20145120 《Java程序设计》第5周学习总结
    20145120 《Java程序设计》第4周学习总结
    20145120 《Java程序设计》第3周学习总结
    20145120 《Java程序设计》第2周学习总结
    20145120 《Java程序设计》第1周学习总结
    you build it,you run it
    我们为什么要研究docker
    他们为什么选择前端工程化,而我又是基于什么考虑的
    Jboss性能调优
    理解Tomcat架构、启动流程及其性能优化
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/10395133.html
Copyright © 2020-2023  润新知