`

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

阅读更多

<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.0 整合tiles 配置

    &lt;package name="default" extends="tiles-default"&gt; &lt;action name="go" class="com.action.MyAction"&gt; &lt;!--result name="success"&gt;/next.jsp&lt;/result--&gt; &lt;result name="success" type="tiles"&gt;myapp.homepage&lt;/...

    struts2用户登录

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="Logon" class="com.cleversoft.struts2.demo.Logon" method="{1}"&gt; &lt;result name="input"&gt;/WEB-INF/jsp/Logon.jsp&lt;/result&gt; ...

    拦截器应用

    &lt;package name="default" extends="struts-default"&gt; &lt;interceptors&gt; &lt;interceptor name="timer" class=".."/&gt; &lt;interceptor name="logger" class=".."/&gt; &lt;/interceptors&gt; ... &lt;/package&gt; ``` 这里的`...

    first_struts_tiles_tutorial.pdf

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="welcome" class="com.example.WelcomeAction"&gt; &lt;result type="tiles"&gt;main&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; &lt;/struts&gt; ``` ...

    Struts2的简单使用

    &lt;package name="package1" extends="struts-default"&gt; &lt;action name="Hello" class="tutorial.HelloWorld"&gt; &lt;result name="aaa"&gt;HelloWorld.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="HelloWorld" class="package1...

    在Struts 2中实现文件上传

    &lt;package name="default" extends="struts-default" namespace="/"&gt; &lt;interceptors&gt; &lt;interceptor-stack name="defaultStack"&gt; &lt;interceptor-ref name="fileUpload"&gt; &lt;param name="maxSize"&gt;104857600&lt;/param&gt; ...

    Struts 2的拦截器

    &lt;package name="default" extends="struts-default"&gt; &lt;interceptors&gt; &lt;interceptor name="timer" class="..."/&gt; &lt;interceptor name="logger" class="..."/&gt; &lt;interceptor-stack name="myStack"&gt; &lt;interceptor-...

    判断两次密码输入是否相同的校验器

    &lt;package name="tutorial" extends="struts-default"&gt; &lt;action name="checkaction" class="tutorial.CheckAction"&gt; &lt;result name="input"&gt;check.jsp&lt;/result&gt; &lt;result name="success"&gt;success.jsp&lt;/result&gt; &lt;/...

    struts2_上传图片展览.doc

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="fileUpload" class="tutorial.FileUploadAction"&gt; &lt;interceptor-ref name="defaultStack"/&gt; &lt;interceptor-ref name=...

    在Struts 2中实现CRUD

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="list" class="tutorial.action.BookAction" method="listBooks"&gt; &lt;result name="list"&gt;/list.jsp&lt;/result&gt; &lt;/action&gt; &lt;action...

    struts2基础简要介绍

    &lt;package name="tutorial" extends="struts-default"&gt; &lt;action name="HelloWorld" class="tutorial.HelloWorld"&gt; &lt;result&gt;/HelloWorld.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; &lt;/struts&gt; ``` #### 三、Struts2...

    第一个Struts2程序中遇到的若干问题及解决方法

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="helloWorld" class="com.example.HelloWorldAction"&gt; &lt;result name="success"&gt;/HelloWorld.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ...

    struts2实践例子在于自己做做,工程lib是全的

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="example" class="com.example.MyAction"&gt; &lt;result name="success"&gt;/success.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ``` 这表明有一...

    struts2文件上传

    &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="fileUpload" class="tutorial.FileUploadAction" method="execute"&gt; &lt;result&gt;/success.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; `...

    Struts2的Action讲解

    &lt;package name="ActionDemo" extends="struts-default"&gt; &lt;action name="HelloWorld" class="tutorial.HelloWorld"&gt; &lt;result&gt;/HelloWorld.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ``` 这里的配置指定了`HelloWorld`...

    图片上传功能的实现代码

    2. **包定义**: `&lt;package name="tutorial" extends="struts-default"&gt;`创建了一个名为tutorial的包,该包继承自默认的struts-default包。 3. **Action配置**: `&lt;action name="up" class="tutorial.MyUpAction"&gt;`...

    Struts2实现CRUD(增 删 改 查)功能实例代码

    &lt;package name="book" namespace="/" extends="struts-default"&gt; &lt;action name="create" class="tutorial.action.BookAction" method="create"&gt; &lt;result name="success"&gt;/success.jsp&lt;/result&gt; &lt;/action&gt; &lt;!-- ...

Global site tag (gtag.js) - Google Analytics