分享
 
 
 

Struts程序各文件之间的关系(2)

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有