首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
iiprogram (74)
nizhigang2000 (3)
hongbo781202 (81)
Kendiv (113)
TechnoFantasy (52)
feifei1018 (19)
coofucoo (108)
qingrun (67)
btbtd (83)
longrujun (64)
CSDN - 文档中心 - Visual C++ 阅读:4425   评论: 4    参与评论
标题   Struts程序各文件之间的关系(2)     选择自 kui 的 Blog
关键字   Struts JSP JavaWebStudio
出处  

Struts程序各文件之间的关系

 

 

下面介绍《如何实现最简单的Struts程序》例子中各文件之间的关系及源代码分析。

 

[相关链接]

JavaWebStudio系列开发工具Visaul Struts版本简介http://dev.csdn.net/develop/article/28/28871.shtm

如何实现最简单的Struts程序http://dev.csdn.net/develop/article/28/28946.shtm

Struts下拉框的实现http://dev.csdn.net/develop/article/28/28956.shtm

Sruts单选框的实现》http://dev.csdn.net/develop/article/29/29042.shtm

Struts复选框的实现http://dev.csdn.net/develop/article/29/29043.shtm

开发环境:Java Web Studio系列开发环境visual strutst版本。

最新JavaWebStudio下载地址:ftp://210.36.64.79/kui

 

 

(上接Struts程序各文件之间的关系(1))

4  Action文件

Hello程序的Action文件实现对输入文件提交的表单的处理,文件名是helloAction.java,文件代码如下:

(省略) 

public final class HelloWordAction extends Action

{

    // 变量定义:

    private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");

    //函数定义:

    public ActionForward execute(ActionMapping mapping,

             ActionForm form,

             HttpServletRequest request,

             HttpServletResponse response)

throws Exception

    {

// Extract attributes and parameters we will need

Locale locale = getLocale(request);

MessageResources messages = getResources(request);

HttpSession session = request.getSession();

HelloWordForm myform = (HelloWordForm) form;

String variable1= myform.getMybeanvariable1();

        try

        {

              if(variable1.trim().equals(""))

              {

                   return new ActionForward(mapping.getInput());

              }

             //其它代码

             return (mapping.findForward("success"));

        }

        catch (Exception e)

        {

            //log.error("出错", e);

            //log.trace("出错");

            throw new RuntimeException(e.getMessage());

        }

    }

}

首先定义处理函数execute(),可以理解为当Hello输入文件表单提交到服务器的ActionServlet,由ActionServlet调用Action的execute()函数实现商业逻辑处理,处理完成后把结果转发到输出文件中。execute()函数定义一helloForm实例“myform”,并从提交的输入ActionForm对象实例form中读取数据,把mybeanvariable1变量的值赋给新的字符串变量variable1:

helloForm myform = (helloForm) form;

        String variable1= myform.getMybeanvariable1();

接下来是出错处理,try语句用于组合一个引起异常的代码块,它使我们告诉Java要注意有可能出现异常的代码段;catch:一旦掷出一个异常,需要捕获住这个异常,catch语句使程序员定义一个捕获;finally:在try/catch块结尾,程序可能需要确保一个代码块不管是否掷出了异常,总是被执行,例如不管发生什么,我们可能都需要确保关闭特定的文件; Exceptlon:一种用于存放在代码中发现的关于一个"exception"或"error"的信息的类;throws:当某些事需要关注时,我们"掷出"一个异常。这个异常被我们创建的一段处理异常的特殊代码"抓住"。涣句话说,通过掷出一个异常,我们告诉代码:出错啦,需要调用一些特殊的逻辑去处理问题。下面完它的完整结束:

try

        {

             //正常代码

         }

        catch (Exception e)

        {

            //出错处理代码

            throw new RuntimeException(e.getMessage());

        }

        finally

{

//最后都必需进行的处理代码

}

 

try块中我们进行的变量variable1是否为空的判断,如果为空就转发到输入页,否则转发到定义为success的输出页:

if(variable1.trim().equals(""))

              {

                   return new ActionForward(mapping.getInput());

              }

             //其它代码

             return (mapping.findForward("success"));

mapping.getInput()函数用于获取输入页的URL值,这个值与配置文件struts-config.xml中<action>项的input属性值相对应

 

5         Struts程序应用配置文件struts-config.xml文件:

  为了便于说明在这里我们把web.xml文件称为应用程序的项目配置文件”,struts-config.xml、struts-config-registration.xml等其它配置文件称为应用程序的“Struts程序应用配置文件

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

<!DOCTYPE struts-config PUBLIC

          "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"

          "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">

<struts-config>

  <form-beans>

   <form-bean  name="HelloWordForm"  

type="emptyprj.HelloWordForm"   />

上面定义了一个Bean,名为"HelloWordForm",对应的类是HelloWordForm。它除了用于保存数据之外,还用于在服务器ActionServlet调用HelloWordAction前先实现bean数据的验证。

</form-beans>

  <action-mappings>

  <action  path="/HelloWordAction"  

type="emptyprj.HelloWordAction"
           name="HelloWordForm"                 

           scope="session"

           input="/HelloWord.jsp">

       <forward name="success"   path="/HelloWordOut.jsp"   />

</action>

上面定义了一个action 配置,其中path等于是转发的路径名,用于JSP文件中的表单中的Action属性值;type等于表单处理的类,意思是用户提交表单时,服务器ActionServlet调用HelloWordAction实现表单的处理;name等于Bean名,与JSP文件中的表单中的name属性值对应;session等于提交数据存储范围;input输入页;<forward>定义转发页。

</action-mappings>

</struts-config>

 


相关文章
对该文的评论
kui ( 2004-06-28)
详细开发资料可到“ftp://61.129.102.53/Struts开发实例/”目录下载。
下载帐号:csdn
下载密码:csdn
CSDN 网友 ( 2004-06-19)
JavaWebStudio 20040521:
这里下好快!300K左右!100多兆,不到五分钟下完!不要急大家慢慢下载,是华军软件园的。Power By 210249(QQ)
http://www.onlinedown.net/soft/31867.htm 
kui ( 2004-06-16)
########################################################
                 FTP信息
********************************************************

感谢  pigo(~_~ ^-^. 。o 0 O O=p&&t=O O 0 o 。. ^-^~_~) 提供的FTP信息,我已把JavaWebStudio放到ftp://218.28.64.19:22
下载帐号:javadown
下载密码:javadown
目录是:JavaWebStudio(VisualStruts20040611版本)

我试过了,可以下,如果你还是下载不了,别骂了,找下面
http://gceclub.sun.com.cn/NASApp/sme/jive/thread.jsp?GXHC_JSESSIONID=5014062459374517771&GXHC_jive.user.lastvisited=1087275199680&forum=8&thread=10011

我白辛苦,也没收过一分钱,还被那么多人在骂,真是流年不幸。

########################################################
                谢谢大家!!
********************************************************
kui ( 2004-06-14)
试到下面ftp看看,看能否下载JavaWebStudio:
ftp://upload:upload@61.155.236.45/