`
爱像天空
  • 浏览: 197734 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

struts配置的 <package name="tutorial" extends="struts-default">

    博客分类:
  • SSH
阅读更多
<package name="tutorial" extends="struts-default">的name属性是什么

    当提交一个Html的Form给Struts2框架时,数据不再是提交给服务器端的某一个JSP页面,而是提交给一个Action类。而框架根据配置文件把与该Action类对应的页面(这个页面可以是JSP页面,也可以是PDF、Excel或Applet)返回给客户端。
写一个Struts2的HelloWorld , 我们需要做三件事:
1. 创建一个显示信息的JSP文件
2. 创建一个生成信息的Action类
3. 建立JSP页面和Action的mapping(映射)
创建HelloWorld.jsp文件
<%...@ taglib prefix="s" uri="/struts-tags" %>
<html>
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h2><s:property value="message" /></h2>
    </body>
</html>

HelloWorld.jsp存放在war目录下面

创建Action类HelloWorld.java
package tutorial;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport ...{
public static final String MESSAGE = "Struts is up and running ...";
public String execute() throws Exception ...{
setMessage(MESSAGE);
return SUCCESS;
}
private String message;
public void setMessage(String message)...{
this.message = message;
}
public String getMessage() ...{
return message;
}
}

HelloWorld.java存放在src/tutorial下面
在struts.xml建立映射
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="tutorial" extends="struts-default">
        <action name="HelloWorld" class="tutorial.HelloWorld">
            <result>/HelloWorld.jsp</result>
</action>
        <!-- Add your actions here -->
    </package>
</struts>

此文件存放在classes下面,同时还要建一个struts.properties的属性文件放在这个目录下,这个文件可以是空的,什么都不写
创建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>Struts2 Hello World!</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

web.xml毫无疑问放在WEB-INF下
创建build.xml
<?xml version="1.0"?>
<project name="struts2app" basedir="." default="usage">
    <property file="build.properties"/>
    <property name="src.dir" value="src"/>
    <property name="web.dir" value="war"/>
    <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
    <property name="name" value="struts2app"/>
    <path id="master-classpath">
        <fileset dir="${web.dir}/WEB-INF/lib">
            <include name="*.jar"/>
        </fileset>
        <!-- We need the servlet API classes:        -->
        <!--   for Tomcat 4.1 use servlet.jar        -->
        <!--   for Tomcat 5.0 use servlet-api.jar    -->
        <!--   for Other app server - check the docs -->
        <fileset dir="${appserver.home}/common/lib">
            <include name="servlet*.jar"/>
        </fileset>
        <pathelement path="${build.dir}"/>
    </path>
    <target name="usage">
        <echo message=""/>
        <echo message="${name} build file"/>
        <echo message="-----------------------------------"/>
        <echo message=""/>
        <echo message="Available targets are:"/>
        <echo message=""/>
        <echo message="build     --> Build the application"/>
        <echo message="deploy    --> Deploy application as directory"/>
        <echo message=""/>
    </target>
    <target name="build" description="Compile main source tree java files">
        <mkdir dir="${build.dir}"/>
        <javac destdir="${build.dir}" target="1.3" debug="true"
               deprecation="false" optimize="false" failonerror="true">
            <src path="${src.dir}"/>
            <classpath refid="master-classpath"/>
        </javac>
    </target>
    <target name="deploy" depends="build" description="Deploy application">
        <copy todir="${deploy.path}/${name}" preservelastmodified="true">
            <fileset dir="${web.dir}">
                <include name="**/*.*"/>
            </fileset>
        </copy>
    </target>
</project>

build.xml放在struts2app目录下,再在这个目录下建一个build.properties文件,内容如下:

按照build.properties配置你的tomcat位置。在struts2app目录下运行ant build ,ant deploy ,程序就发布到tomcat的webapps下

# Ant properties for building the springapp
appserver.home=d:/tomcat5.5
deploy.path=${appserver.home}/webapps

tomcat.manager.url=http://localhost:8080/manager
tomcat.manager.username=admin
tomcat.manager.password=admin


运行
现在,启动tomcat,访问http://localhost:8080/tutorial/HelloWorld.action,能看到页面的title为"Hello World!" ,页面上显示"Struts is up and running!".

它们怎么运行的
1、       struts2容器收到HelloWorld.action请求,从web.xml获取设置,org.apache.struts2.dispatcher.FilterDispatcher是所有应用(包括*.action)的入口点。
2、       struts2在struts.xml中找到HelloWorld类(Action),并调用它的execute方法。
3、       execute方法给message变量赋值,并返回SUCCESS,struts2收到SUCCESS标志,按照映射关系,把HelloWorld.jsp返回客户端。
4、       当HelloWorld.jsp开始运行,<s:property value="message" />会调用HelloWorld类getMessage方法,把结果显示在页面上。
分享到:
评论

相关推荐

    Struts2 国际化字符串 拦截器

    &lt;action name="VMHelloWorld" class="tutorial.HelloWorld"&gt; &lt;result type="velocity"&gt;/HelloWorld.vm&lt;/result&gt; &lt;/action&gt; 例3 classes/struts.xml中VMHelloWorld Action的配置 新建HelloWorld.vm,内容如下所示:...

    iBatis-设置缓存模式-Java源码(下载)

    &lt;property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/&gt; &lt;property name="JDBC.Username" value="sa"/&gt; &lt;property name="JDBC.Password" value=""/&gt; &lt;/dataSource&gt; &lt;/...

    spring-boot-master.zip

    spring-boot2-master &lt;h1&gt;YouTube Channel - Spring Boot Tutorial&lt;/h1&gt; &lt;p&gt;Subscribe for future video and updates&lt;/p&gt; &lt;a href=...

    C++ Standard Library: A Tutorial and Reference

    Input/Output Using Stream Classes&lt;br/&gt;&lt;br/&gt;13.1 Common Background of I/O Streams&lt;br/&gt;&lt;br/&gt;13.2 Fundamental Stream Classes and Objects&lt;br/&gt;&lt;br/&gt;13.3 Standard Stream Operators &lt;&lt; and &gt;&gt;&lt;br/&gt;&lt;br/&gt;13.4 ...

    OpenGL 3.3教程翻译

    OpenGL 3.3教程翻译 OpenGL 3.3 Tutorial Translation ======== 项目简介 Introduction -------- 此项目致力于将Arnaud Masserann等所著在线课程《Tutorials for OpenGL 3.3 and later》翻译为简体中文版。原版英文...

    myclipse+jboss+ejbStateless

    &lt;br&gt;配置myclipse下的Jboss服务器&lt;br&gt;&lt;br&gt; EJBStatelss&lt;br&gt;&lt;br&gt;Jboss测试&lt;br&gt;&lt;br&gt; http://localhost:8080/&lt;br&gt;&lt;br&gt;准备工程&lt;br&gt; &lt;br&gt;新建bean&lt;br&gt; Session建立完毕,我们只建了remote的访问方式&lt;br&gt; 写入代码:&lt;br&gt; ...

    Apress.Accelerated.C.Sharp.2008.Nov.2007

    英文版&lt;br&gt;======================&lt;br&gt; C# 2008 offers powerful new features, and Accelerated C# 2008 is the &lt;br&gt; fastest path to mastering them, and the rest of C#, for both experienced &lt;br&gt; C# ...

    Visual C++ 编程资源大全(英文源码 其它)

    1,01.zip&lt;br&gt;Output&lt;br&gt;显示所有的调试信息(5KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Some general debugging tips&lt;br&gt;一般的调试技巧(11KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;Debugging ISAPI extension&lt;br&gt;调试ISAPI扩展(4KB)&lt;END&gt;&lt;br&gt;4,04....

    (韩国开源人形机器人)DARwIn-OP_ROBOTIS_v1.5.0.zip

    * Actuator Model name changed (RX-28M -&gt; MX-28) * MX-28 firmware updated. * dxl_monitor : can change ID (control table addr 3) * Get-up motion changed. * Sensor calibration routine changed. (use ...

    The ANSI C Programming Language (Kernighan & Ritchie)

    The ANSI C Programming Language (Kernighan & Ritchie) EN 英文原版&lt;br&gt;&lt;br&gt;学习标准C语言最好的入门书,结合Unix高级编程,将C语言讲得非常透彻&lt;br&gt;Chapter 1- A Tutorial Introduction&lt;br&gt;Chapter 2- Types,...

    Visual C++ 编程资源大全(英文源码 COM)

    1,01.zip&lt;br&gt;Leveraging C++ Applications Using COM&lt;br&gt;使用COM提高C++应用程序的性能(8KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;HOWTO Configure DCOM Timeouts&lt;br&gt;如何配置DCOM的超时设定(13KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;...

    All About: File I/O in C++

    &lt;br&gt;&lt;br&gt;Introduction&lt;br&gt;&lt;br&gt;This tutorial will start with the very basis of File I/O (Input/Output) in C++. After that, I will look into aspects that are more advanced, showing you some tricks, and ...

    Visual C++ 编程资源大全(英文源码 ATL)

    src.zip&lt;br&gt;Splitter window control(454KB)&lt;END&gt;&lt;br&gt;38,msform.exe&lt;br&gt;ActiveX script hosting - 2(123KB)&lt;END&gt;&lt;br&gt;39,axhost.exe&lt;br&gt;ActiveX script hosting(109KB)&lt;END&gt;&lt;br&gt;40,ATL_Script.zip&lt;br&gt;Implementing ...

    Visual C++ 编程资源大全(英文源码 数据库)

    1,01.zip&lt;br&gt;Calling Stored Procedures&lt;br&gt;调用存储过程(8KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Create Access data source name dynamically&lt;br&gt;动态创建Access的数据源名(5KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;Using DAO to read data ...

    Struts Design and Programming: A Tutorial

    针对Struts1的网页版的Struts Design and Programming A Tutorial

    Visual C++ 编程资源大全(英文源码 ActiveX)

    1,01.zip&lt;br&gt;ActiveX script hosting&lt;br&gt;ActiceX script主机程序(20KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;ActiveX Control Tutorial&lt;br&gt;ActiveX控件指南(11KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;An ASP Component to Send Arbitary Large ...

    XML Tutorial

    XML Tutorial&lt;br&gt;Schema Tutorial&lt;br&gt;DTD Tutorial&lt;br&gt;DOM Tutorial&lt;br&gt;CSS2 Tutorial&lt;br&gt;

    a-PyTorch-Tutorial-to-Image-Captioning-master_pytorch_

    讲解如何入门PyTorch,包括基础原理知识、numpy与PyTorch的区别以及案例研究实例

    JMS+activeMQ 教程

    信息来源于: &lt;a href=...&lt;a href=http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html&gt;http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html&lt;/a&gt;

    CSS是Cascading Style Sheet 的缩写

    CSS是Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 你可以用以下三种方式将样式表加入您... color: black} --&gt; &lt;/style&gt; &lt;body&gt;

Global site tag (gtag.js) - Google Analytics