ant struts

Struts框架搭建和基本使用 Struts框架搭建和基本使用,包括7个必备的jar,输入校验,freemark使用,国际化资源文件配置的基本使用 立即下载

我们先来用ANT搭建起一个工作环境。

首先从apache.org获得ant的可执行二进制win或linux代码,然后根据不同的系统配置好ANT_HOME环境变量和ant的bin所在的path目录;关于两种系统的环境配置可以在我的java环境的搭建文章中找到方法;然后测试你的ant是否可用:在任何一个目录下运行ant会出现一下信息:

C:>ant
Buildfile: build.xml does not exist!
Build failed

这说明你的ant可以工作了。

下面让我们再从apache.org获得Struts的包文件。找到struts-example包,我们就借用一下这个很好的教学包来修改创建并理解我们的Struts结构。

打开此包,我们可以发现此根文件夹存在一个build.xml文件,这个就是我们前面ant程序所必需的文件,那么就让我们来看看这个文件:

<project name="struts-example.project" default="war-package" basedir=".">这一行定义了你的工程名struts-example.project打包war工程默认打包路径:.为当前所在目录
<property name="app.name" value="struts-example" />
<property name="build.dir" value="WEB-INF/classes" />
<property name="lib.dir" value="build/lib"/>
<property name="build.home" value="build/${app.name}"/>
<property name="src.dir" value="E:/Tomcat/webapps" />
<property name="del.dir" value="E:/Tomcat/webapps/struts-example" />以上几行定义了此build.xml文件内所要用到的变量,我很是推荐这种变量的申明用法,如果你做多了就会发现这也是一种很简单的模式。


<!-- =================================================================== -->
<!-- Compile package -->
<!-- =================================================================== -->
<target name="compile">这一行定义了ant 后面所要的参数,也就是我们将来使用ant compile来编译以下<target></target>之间的目标文件。

<javac srcdir="WEB-INF/src/org/apache/struts/webapp/example"
destdir="${build.dir}" 这一行当中WEB-INF/src/org/apache/struts/webapp/example是源文件所在的目录而destdir="${build.dir}"则是编译好的class文件所放置目录,这里所要指出的是因为源文件package了org/apache/struts/webapp/example所以目录为WEB-INF/classes
debug="on"
deprecation="on"
optimize="off"
>
<classpath>

<pathelement location="WEB-INF/lib/struts.jar" />这一行声明了本次ant命令所要用到的类文件的classpath:WEB-INF/lib/struts.jar
</classpath>
<include name="OkInensModel.java"/>
<include name="OkInensAction.java"/>所要编译的文件,你也可以用一个<include name="*.java"/>代替

</javac>
</target>
以下解释请参考以上的自己解释:

<!-- =================================================================== -->
<!-- Creates the package jar archive -->
<!-- =================================================================== -->
<target name="war">
<jar jarfile="${app.name}.war"
basedir="" includes="**"/>
</target>

<!-- =================================================================== -->
<!-- Creates the distribution -->
<!-- =================================================================== -->



<!-- =================================================================== -->
<!-- Create directories and copy files for joinStruts web app -->
<!-- =================================================================== -->
<target name="copy">
<delete dir="${del.dir}"/>

<!-- copy web application -->


<!-- copy struts configuration files -->
<copy todir="${src.dir}">
<fileset dir=""
includes="${app.name}.war"

/>
</copy>

</target>

<!-- =================================================================== -->
<!-- Packages the distribution to a WAR -->
<!-- =================================================================== -->


</project>

下面让我们来看看此文件夹下的web-inf下其他文件:

web.xml

此文件定义了Struts架构的基本信息,包括*.do的映射配置:

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

action.xml在Struts1.0以后已经被取消

struts-config.xml

此文件为文件映射目录配置文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>

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

<!--
This is the Struts configuration file for the example application,
using the proposed new syntax.

NOTE: You would only flesh out the details in the "form-bean"
declarations if you had a generator tool that used them to create
the corresponding Java classes for you. Otherwise, you would
need only the "form-bean" element itself, with the corresponding
"name" and "type" attributes.
-->


<struts-config>


<!-- ========== Data Source Configuration =============================== -->
<!--
<data-sources>
<data-source>
<set-property property="autoCommit"
value="false"/>
<set-property property="description"
value="Example Data Source Configuration"/>
<set-property property="driverClass"
value="org.postgresql.Driver"/>
<set-property property="maxCount"
value="4"/>
<set-property property="minCount"
value="2"/>
<set-property property="password"
value="mypassword"/>
<set-property property="url"
value="jdbc:postgresql://localhost/mydatabase"/>
<set-property property="user"
value="myusername"/>
</data-source>
</data-sources>
-->
<!-- ========== Form Bean Definitions =================================== -->
<form-beans>

<!-- Logon form bean -->
<!--
<form-bean name="logonForm"
type="org.apache.struts.webapp.example.LogonForm"/>
-->
<!--
<form-bean name="logonForm"
type="org.apache.struts.action.DynaActionForm">
-->
<form-bean name="logonForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>


<!-- Registration form bean -->
<form-bean name="registrationForm"
type="org.apache.struts.webapp.example.RegistrationForm"/>

<!-- Subscription form bean -->
<form-bean name="subscriptionForm"
type="org.apache.struts.webapp.example.SubscriptionForm"/>

</form-beans>


<!-- ========== Global Forward Definitions ============================== -->
<global-forwards>
<forward name="logoff" path="/logoff.do"/>
<forward name="logon" path="/logon.jsp"/>
<forward name="registration" path="/registration.jsp"/>
<forward name="success" path="/mainMenu.jsp"/>
</global-forwards>


<!-- ========== Action Mapping Definitions ============================== -->
<action-mappings>

<!-- Edit user registration -->
<action path="/editRegistration"
type="org.apache.struts.webapp.example.EditRegistrationAction"
attribute="registrationForm"
scope="request"
validate="false">
<forward name="success" path="/registration.jsp"/>
</action>

<action
path="/okInens"
type="org.apache.struts.webapp.example.OkInensAction"
validate="false"
scope="request">
</action>

<!-- Edit mail subscription -->
<action path="/editSubscription"
type="org.apache.struts.webapp.example.EditSubscriptionAction"
attribute="subscriptionForm"
scope="request"
validate="false">
<forward name="failure" path="/mainMenu.jsp"/>如果EditSubscriptionAction返回failure进入mainMenu.jsp
<forward name="success" path="/subscription.jsp"/>如果EditSubscriptionAction返回success进入subscription.jsp
</action>

<!-- Process a user logoff -->
<action path="/logoff"
type="org.apache.struts.webapp.example.LogoffAction">
<forward name="success" path="/index.jsp"/>
</action>

<!-- Process a user logon -->
<action path="/logon"
type="org.apache.struts.webapp.example.LogonAction"
name="logonForm"
scope="session"
input="logon">
<exception
key="expired.password"
type="org.apache.struts.webapp.example.ExpiredPasswordException"
path="/changePassword.jsp"/>
</action>

<!-- Save user registration -->
<action path="/saveRegistration"
type="org.apache.struts.webapp.example.SaveRegistrationAction"
name="registrationForm"
scope="request"
input="registration"/>

<!-- Save mail subscription -->
<action path="/saveSubscription"
type="org.apache.struts.webapp.example.SaveSubscriptionAction"
name="subscriptionForm"
scope="request"
input="subscription">
<forward name="subscription" path="/subscription.jsp"/>
<forward name="success" path="/editRegistration.do?action=Edit"/>
</action>


<!-- Display the "walking tour" documentation -->
<action path="/tour"
forward="/tour.htm">
</action>

<action path="/xs"
forward="/xs.jsp">
</action>

</action-mappings>


<!-- ========== Controller Configuration ================================ -->

<controller>
<!-- The "input" parameter on "action" elements is the name of a
local or global "forward" rather than a module-relative path -->
<set-property property="inputForward" value="true"/>
</controller>


<!-- ========== Message Resources Definitions =========================== -->

<message-resources
parameter="org.apache.struts.webapp.example.ApplicationResources"/>

<message-resources
parameter=

"org.apache.struts.webapp.example.AlternateApplicationResources"
key="alternate">
</message-resources>


<!-- ========== Plug Ins Configuration ================================== -->

<plug-in className=

"org.apache.struts.webapp.example.memory.MemoryDatabasePlugIn">
<set-property property="pathname" value="/WEB-INF/database.xml"/>
</plug-in>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>


</struts-config>

红色是我自己加改的,你可以自己根据自己的需要添加更改

以下是我的struts-example运行效果:



我的struts-example.war下载

以上只是我的一点理解,如果你想更深刻的理解使用这些,请你自己来进行更深入的学习和使用吧,我想那才是你真正体会并运用了这项技术,在此对apache.org表示最敬意的感谢,他为我们带来了许多开源好技术。

struts2框架搭建 请仔细阅读,有助于你的理解: 环境:jdk1.8.0_112 功能:1、第一种方式是原始的struts2框架,struts.xml在src下 2、第二、三种方式主要增加的是动态调用(第三种方式推荐使用),struts.xml放在src下 3、第四种方式struts.xml放在src下某一目录的子目录下面,方便管理(推荐使用,可仔细学习,如果是放在WEB-INF下面,亦可参考此资源) 立即下载

相关推荐

struts2框架详细搭建教程

这是一个帮助初学者学习如何搭建struts2框架的详细教程文档,图文教程;

Struts框架搭建

Struts1作为一个官网都没更新的框架,在现在的市面上几乎已经不见其踪影。但作为一个入门框架对于理解请求的整个流程还是比较简单易懂的。在这里就简单的搭建一个Struts框架希望能对学习的小伙伴提供一点帮助吧。我们的开发工具仍然为eclipse,在这里使用maven作为我们的构建工具,如果对eclipse搭建maven还不懂的同学请点击这里。先建立一个ma...

Gabriel丶的博客 330

struts 简单框架搭建

struts 简单框架搭建 最简单 基础的的 struts 没有spring

struts框架搭建

  struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。   Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet...

weixin_30627341的博客 134

Struts2官方例子1(Ant版的)

Struts2官方例子1(Ant版的),Basic_Struts2_Ant,主要是搭建Struts2的基本环境,包括需要的jar,web.xml Struts.xml的配置

用朴素贝叶斯分类模型判断病人是否感染幽门螺杆菌(Python实现)

朴素贝叶斯,Python

weixin_56529327的博客 1160

Struts2 搭建框架记录

今天是学习Struts框架的第一天,记录下来遇到的第一个问题,折腾了半天了,终于解决了。 记录一下搭建过程: 一:搭建环境: eclipse:eclipse-jee-oxygen-2-win32-x86_64 jdk:jdk1.8.0_131 Tomcate:apache-tomcat-7.0.79 二:下载struts2相关的jar包。 可以从官网下载,下载步骤如下: 1,...

种一棵树最好的时间是十年前,其次是现在。 434

Windows Server安装Intel I219-V网卡驱动完整教程

在Windows Server系统上安装Intel I219-V网卡驱动的方法。

小白成长历程 5172

搭建struts框架

1.导包 2.新建一个实体类... 2.配置WebRoot下的lib文件里面的web.xml(配置过滤器)   com.struts     struts2   org.apache.struts2.dispatcher.FilterDispatcher       struts2   /*

zzx的博客 269

基因家族Motif 分析

MEME

hgz2020的博客 6317

从命令到对话:LLM如何重塑车载语音交互与软件定义汽车体验

自动语音识别和自然语言处理是智能交互的核心基础技术,它们使机器能够理解和响应人类语音指令。其原理在于通过声学模型和语言模型将声音信号转化为文本,再解析文本背后的用户意图。这项技术的价值在于提供了一种自然、高效且能解放双手的人机交互方式,极大地提升了在特定场景(如驾驶)下的安全性与便利性。随着技术演进,其应用场景已从简单的命令控制扩展到复杂的多轮对话和跨域任务执行。当前,软件定义汽车的架构变革为车载语音提供了统一的控制平台,而大型语言模型的引入则带来了范式革命,使其从功能触发器进化为真正的智能任务执行者。本文

weixin_42669344的博客 563

Struts学习笔记[3]使用ant来发布Struts应用

使用ant来发布Struts应用用ant来编译规模较大的工程比较方便,每个工程对应一个build.xml文件。这个文件包含与这个工程有关的路径信息和任务。每个build.xml文件都包含一个元素,和一个或多个元素。ANT提供了内置任务集,用户可以开发自己的任务元素。下表为ANT的内置任务:ANT任务描述Property设置name/value形式的属性Mkdir创建目录Copy拷贝文件或文件夹De

mikechu的专栏 1474

Ubuntu20.04下Intel RealSense D435i相机驱动配置全攻略(含ROS Noetic适配)

本文详细介绍了在Ubuntu20.04系统下配置Intel RealSense D435i相机驱动的完整流程,包括libRealsense SDK 2.0安装、ROS Noetic适配及常见问题解决方案。通过实战指南帮助开发者快速实现深度相机与ROS的集成,适用于机器人视觉和SLAM应用开发。

weixin_29281915的博客 512

用ANT工具管理Struts等Web应用

1.       Ant是apache的一个开源代码项目,它是一个优秀的软件工程管理工具。ANT本身用java语言实现,并且使用xml格式的配置文件来构建工程,可以很方便地实现多平台编译,非常适合管理大型工程。       本篇将介绍如何用Ant工具来创建和发布struts应用。       在开发阶段,我们需要建立和准备各种类型的文件,如java源代码,java Class文件,jar文件

萧逸闲侃 769

手把手教你用EG2153搭建开关电源:SOP-8封装驱动芯片的5个设计技巧

本文详细介绍了使用EG2153自振荡半桥驱动芯片搭建开关电源的五个核心设计技巧。内容涵盖从深入理解芯片工作机制、频率编程计算误区、SOP-8封装的热管理方案,到死区时间评估与外部保护电路设计,以及实战调试与故障排查指南,旨在帮助工程师实现稳定可靠的小功率电源设计。

weixin_29200485的博客 378

机器人动力学仿真软件:PyBullet_(10).案例分析:双足机器人行走仿真

在本节中,我们将详细探讨如何使用PyBullet进行双足机器人的行走仿真。双足机器人行走仿真是一个复杂的动力学问题,涉及多个关节的协调运动和环境交互。通过本节的学习,您将了解如何创建和控制双足机器人模型,设置仿真环境,以及实现基本的行走算法。首先,我们需要创建一个双足机器人模型。PyBullet支持多种模型格式,包括URDF(Unified Robot Description Format)和MJCF(MuJoCo XML Format)。URDF是一种广泛使用的机器人模型描述格式,我们将使用URDF来创建

kkchenjj的博客 910

用Ant,Struts搭建简单工程应用环境

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 349

杰理-tone

低音质格式切换高音质格式:切换提示音格式,未导出,编译下载没有提示音;提示音导出,再次编译下载,提示音正常高音质格式切换低音质格式:不需要导出,直接编译下载,提示音正常。

m0_67447112的博客 955

ant 自动生成struts资源文件

Ant这个工具真实一个太好用的工具了!<br />近期在学习使用struts,使用过程中会涉及到struts资源的文件的使用,这个资源文件又必须通过jdk的命令native2ascii转换字符编码。想起来我经常修改资源文件,然后每次修改都要打开控制台,cd到资源文件目录,然后在执行命令native2ascii -encoding gb2312,真是好痛苦的经历啊。<br />      所以我决定使用ant解决这个难题。让ant自动为我服务,呵呵。好懒的我啊!<br />      打开ant的文档,找到了

a0501bqzhxy的专栏 629

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Struts、spring、hibernate、EJB、ant术语说明

Struts、spring、hibernate、EJB、ant术语说明 Struts Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几...

编程开发资料库 95

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

用ANT打包Struts2项目并发布到tomcat里

花了一天时间研究ANT,做了一个简单的demo,本着分享快乐的初衷,现在将部分代码贴出来,希望给有需要的朋友一些帮助,也给自己备个份。 笔者无意在这里讨论ANT的详细信息,所以这里我们假设你至少已经知道ANT是什么、有什么用。 笔者使用的IDE是Eclipse+myEclipse,所以这里都将以该环境做介绍。 1、工程目录图: [img...

技术囚徒 646

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Struts、spring、hibernate、EJB、ant的理解

<br />Struts<br /><br /> Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。 <br /><br /> Spring<br /><br /

beyond15841125702的专栏 279

class文件用ant打包后struts扫描不到action的问题

有个项目的class文件用ant打包后放到项目lib目录下, 结果struts2 convention 就扫描不到jar里的action了...然后在网上搜到这个 https://jira.springsource.org/browse/SPR-1670 是说jar包中META-INF/manifest.mf没有指定什么directory entry, 查看了一下jar中的META-INF/m...

weixin_33774308的博客 85
上一篇: ant 的使用
下一篇: 实现文件上传
chenndd
博客等级 码龄17年 13粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值