zoukankan      html  css  js  c++  java
  • 【J2EE】struts-2.3.16.3+apache-tomcat-8.0.9开发环境部署,“Hello World”的实现。

    1、在官网下载Struts2的开发包

    下载链接如下:

    http://120.203.229.30/5ff/2bc79/5ff16ae8698e1c321758a8f03a1bc0939892bc79/struts-2.3.16.3-all.zip?n=struts-2.3.16.3-all.zip

    http://mirrors.cnnic.cn/apache//struts/documentation/struts-2.3.16.3-docs.zip

    http://mirrors.cnnic.cn/apache//struts/source/struts-2.3.16.3-src.zip

    Struts2当前最新版本为:

    解压struts-2.3.16.3-all.zip得到struts-2.3.16.3,开发包的jar文件都存放在lib文件夹中。

    2、加载jar包到工程中的库文件夹部分,使用时候最好都包好红框中的7个jar文件。

    如何创建名称为struts2的用户库文件夹,方法如下:

    eclipse窗口的菜单栏中选择window--Preferences,选择Java--Build Path,点击下面的User Libraries。然后新建即可。

    3、设置工程属性,使得编译时候能够将用户引入的库文件自动拷贝到WEB-INF/lib路径下去编译工程,如果没有此步,会导致编译的时候找不到class的错误。这里当然也可以直接将库文件放到lib中去,但是建议使用前面的方法。

    4、新建index.jsp文件,同时拷贝jsp文件必要的库文件servlet-api.jar文件到WEB-INF/lib目录下

    代码解释:第12行的value必须等于"mes",因为这里的"mes"是和HelloWorldAction类中定义的私有变量private String mes保持一致的,与方法对应与HelloWorldAction类中的String getMes()方法。

     1 <%@ page language="java" pageEncoding="UTF-8"%>
     2 <%@ page import="java.util.*" %>
     3 <%@ taglib prefix="s" uri="/struts-tags" %>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>welcome Struts2(欢迎页面)</title>
     9 </head>
    10 <body>
    11     <h2>
    12         <s:property value="mes"/>
    13         <!-- value is equal to HelloWorldAction.java private mes -->
    14     </h2>
    15 </body>
    16 </html>

    5、Run index.jsp在Tomcat服务器上运行,运行后将在eclipse左侧的工程栏自动生成Servers目录。编辑目录下的web.xml文件,添加如下代码:

    1   <filter>
    2         <filter-name>struts2</filter-name>
    3         <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    4     </filter>
    5     <filter-mapping>
    6         <filter-name>struts2</filter-name>
    7         <url-pattern>/*</url-pattern>
    8     </filter-mapping>

     请注意编写时候,filter节点和filter-mapping节点下的filter-name必须保持一致,均为struts2,且filter-class务必书写准确。

    注:该步骤运行index.jsp主要是要自动生成web.xml文件,然后按照要求设置xml文件,以供struts2框架配置

    另外特别注意,Apache Tomcat的安装路径不能存在空格,否则会可能会出一些意想不到的错误。

    6、编写Action类

    Struts2的核心功能是Action类,Action类是一段特定的URL请求时执行的代码,过滤器(FilterDispatcher)会根据请求的URL不同,执行相应的Action类,Action类执行的结果一般对应于一个result展现给用户。result通过字符串名字来标识,过滤器根据Action返回的结果字符串选择对应的result展示给用户,Action与其对应的result在struts.xml文件中进行配置。

      一般Action类会继承com.opensymphony.xwork2.ActionSupport类,并重写此类中的execute()方法。在src目录下创建一个新类HelloWorldAction.java,代码如下:

     1 //javac -classpath "C:Program FilesJavajdk1.7.0_60lib	ools.jar;D:Javastruts-2.3.16.3-allstruts-2.3.16.3libxwork-core-2.3.16.3.jar" HelloWorldAction.java
     2 
     3 package com.struts2;
     4 import com.opensymphony.xwork2.ActionSupport;
     5 
     6 public class HelloWorldAction extends ActionSupport{
     7     private String mes;
     8     
     9     public String getMes(){
    10         return mes;
    11     }
    12     public void setMes(String _mes){
    13         this.mes=_mes;
    14     }
    15     
    16     public String execute()throws Exception{
    17         mes="Hello World!";
    18         return SUCCESS;
    19     }
    20 }

    手动编译生成class文件,编译命令为:
    javac -classpath "C:Program FilesJavajdk1.7.0_60lib ools.jar;D:Javastruts-2.3.16.3-allstruts-2.3.16.3libxwork-core-2.3.16.3.jar" HelloWorldAction.java

    7、配置struts.xml文件(...WebContentWEB-INFclasses路径下)

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
     3 <struts>
     4     <include file="stuts-default.xml"></include>
     5     <package name="default" extends="struts-default">
     6         <action name="Hello" class ="com.struts2.HelloWorldAction" method="execute">
     7             <result name="success">/index.jsp</result>
     8         </action>        
     9     </package>
    10 </struts>

    第6行,action节点中的name属性等于"Hello",这里就对应访问action的URL名称:http://localhost:8080/StrutsDemoProject/Hello.action

    com.struts2.HelloWorldAction 为HelloWorldAction的class路径

    8、拷贝struts2开发包中必要的jar文件到Tocmat安装路径下的lib文件夹中,运行index.jsp程序,这时应该不会在eclipse的Console窗口出现class not found 的错误。(这里需要注意如果在WEB-INF/lib下和tomcat的安装目录的lib下面同时放了struts2的jar文件的时候,这个时候会出现jar文件冲突的错误,另外也可能出现其他意想不到的问题。届时,apache运行失败,问题很难排查。)

    C:apache-tomcat-8.0.9lib下新增的struts2的jar文件列表如下:

    struts2-core-2.3.16.3.jar   ognl-3.0.6.jar  freemarker-2.3.19.jar

    commons-logging-1.1.3.jar  javassist-3.11.0.GA.jar

    xwork-core-2.3.16.3.jar   commons-lang3-3.1.jar

    正常情况下此时运行index.jsp的Console界面是:(这个的错误原因是reques是null,这里是属于正常现象。因为http://localhost:8080/StrutsDemoProject/Hello.action就会正常显示了。)

    七月 27, 2014 10:53:38 下午 org.apache.struts2.dispatcher.Dispatcher error
    严重: Exception occurred during processing request: null
    java.lang.NullPointerException

    9、struts2部署后的,运行界面如下

    到这里就完成了sturts2的开发环境部署。

  • 相关阅读:
    FreeSWITCH呼叫参数之sip_cid_type
    FreeSWITCH收到重复的DTMF信号
    ajaxupload.js调用始终进入error回调
    df -h和du -sh显示结果不一样的原因及解决
    公网用户接入NAT后面的freeswitch配置
    Jedis工具类(含分布式锁的调用和释放)
    【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)
    【读书笔记《Android游戏编程之从零开始》】18.游戏开发基础(碰撞检测)
    【读书笔记《Android游戏编程之从零开始》】17.游戏开发基础(游戏适屏的简述和作用、让游戏主角动起来)
    【读书笔记《Android游戏编程之从零开始》】16.游戏开发基础(动画)
  • 原文地址:https://www.cnblogs.com/wintergrass/p/3872007.html
Copyright © 2011-2022 走看看