启天JAVA培训社区's Archiver

junsan 发表于 2008-9-4 12:20

struts2下一个简单的HelloWorld

[align=left][size=3][font=宋体]上节介绍了搭建开发[/font][font=Times New Roman]Struts 2[/font][font=宋体]应用所需要的环境的配置,本节将以一个简单的[/font][font=Times New Roman]HelloWorld[/font][font=宋体]示例来介绍[/font][font=Times New Roman]Struts 2[/font][font=宋体]给读者带来的体验。[/font][/size][/align][align=left][size=3][font=宋体]为了使读者能够更清楚地了解示例的编写过程,示例将采用文本编辑器的方式来开发,这样避免了[/font][font=Times New Roman]IDE[/font][font=宋体]集成编辑器给读者带来的困扰。开发一个[/font][font=Times New Roman]Web[/font][font=宋体]应用,要建立符合规范的目录结构,上节中已经对[/font][font=Times New Roman]Web[/font][font=宋体]应用目录进行了详细的介绍,为了开发[/font][font=Times New Roman]HelloWorld[/font][font=宋体]应用,读者应该先建立一个目录。笔者建立的顺序如下:[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]在[/font][font=Times New Roman]E[/font][font=宋体]盘中建立一个文件夹:[/font][font=Times New Roman]E:\myweb[/font][font=宋体]。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]在此文件夹中建立[/font][font=Times New Roman]WEB-INF[/font][font=宋体]文件夹。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]建立[/font][font=Times New Roman]E:\myweb\WEB-INF\classes[/font][font=宋体]文件夹。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]建立[/font][font=Times New Roman]E:\myweb\WEB-INF\lib[/font][font=宋体]文件夹。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]将[/font][font=Times New Roman]Tomcat[/font][font=宋体]默认的[/font][font=Times New Roman]web.xml[/font][font=宋体]文件拷贝到[/font][font=Times New Roman]E:\myweb\WEB-INF\[/font][font=宋体]目录下,[/font][font=Times New Roman]web.xml[/font][font=宋体]文件在[/font][font=Times New Roman]Tomcat[/font][font=宋体]安装目录中的[/font][font=Times New Roman]webapps\ROOT\WEB-INF[/font][font=宋体]目录下。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]使用文本编辑器建立一个[/font][font=Times New Roman]struts.xml[/font][font=宋体]文件,保存到[/font][font=Times New Roman]E:\myweb\WEB-INF\classes[/font][font=宋体]目录下。[/font][/size][/align][align=left][size=3]
[/size] [/align][size=3]
[align=left][size=3][font=宋体]完成上述步骤后,一个简单的[/font][font=Times New Roman]Web[/font][font=宋体]目录就完工了,接下来需要修改[/font][font=Times New Roman]web.xml[/font][font=宋体]文件和[/font][font=Times New Roman]struts.xml[/font][font=宋体]文件。[/font][font=Times New Roman]web.xml[/font][font=宋体]文件内容如代码[/font][font=Times New Roman]2.4[/font][font=宋体]所示。[/font][/size][/align][align=left][size=3][font=黑体]代码[/font]2.4
HelloWorld[font=黑体]示例的[/font]web.xml[/size][/align][align=left][size=2][font=Courier New]<?xml version="1.0" encoding="UTF-8"?>[/font][/size][/align][align=left][size=2][font=Courier New]<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee [url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]">[/font][/size][/align][align=left][size=2][font=Courier New]
<filter>[/font][/size][/align][align=left][size=2][font=Courier New]
<!— [/font][font=宋体]配置[/font][font=Courier New]filter-- >[/font][/size][/align][align=left][size=2][font=Courier New]

<filter-name>struts2</filter-name>[/font][/size][/align][align=left][size=2][font=Courier New]

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>[/font][/size][/align][align=left][size=2][font=Courier New]
</filter>[/font][/size][/align][align=left][size=2][font=Courier New]
<filter-mapping>[/font][/size][/align][align=left][size=2][font=Courier New]

<!—[/font][font=宋体]拦截所有[/font][font=Courier New]URL[/font][font=宋体]用户请求[/font][/size][/align][align=left][size=2][font=Courier New]
<filter-name>struts2</filter-name>[/font][/size][/align][align=left][size=2][font=Courier New]
<url-pattern>/*</url-pattern>[/font][/size][/align][align=left][size=2][font=Courier New]
</filter-mapping>[/font][/size][/align][align=left][size=2][font=Courier New]
<!—[/font][font=宋体]配置欢迎界面文件[/font][font=Courier New]-- >[/font][/size][/align][align=left][size=2][font=Courier New]<welcome-file-list>[/font][/size][/align][align=left][size=2][font=Courier New]
<welcome-file>index.html</welcome-file>[/font][/size][/align][align=left][size=2][font=Courier New]

<welcome-file>index.htm</welcome-file>[/font][/size][/align][align=left][size=2][font=Courier New]
<welcome-file>index.jsp</welcome-file>[/font][/size][/align][align=left][size=2][font=Courier New]
<welcome-file>default.html</welcome-file>[/font][/size][/align][align=left][size=2][font=Courier New]
<welcome-file>default.htm</welcome-file>[/font][/size][/align][align=left][size=2][font=Courier New]
<welcome-file>default.jsp</welcome-file>[/font][/size][/align][align=left][size=2][font=Courier New]
</welcome-file-list>[/font][/size][/align][align=left][size=2][font=Courier New]</web-app>[/font][/size][/align][align=left][size=3][font=宋体]在代码[/font][font=Times New Roman]2.4[/font][font=宋体]所示内容中,相比原来的内容,增加了[/font][font=Times New Roman]<filter>[/font][font=宋体]和[/font][font=Times New Roman]<filter-mapping>[/font][font=宋体]。[/font][font=Times New Roman]<filter>[/font][font=宋体]指定了需要加载的[/font][font=Times New Roman]Struts 2[/font][font=宋体]核心控制器[/font][font=Times New Roman]org.apache.struts2.dispatcher.FilterDispatcher[/font][font=宋体],而[/font][font=Times New Roman]<filter-mapping>[/font][font=宋体]使用通配符“[/font][font=Times New Roman]/*[/font][font=宋体]”来拦截所有的[/font][font=Times New Roman]URL[/font][font=宋体]请求,保证了用户请求都被[/font][font=Times New Roman]Struts 2[/font][font=宋体]接收处理。[/font][/size][/align][size=3][font=宋体][align=left][size=3][font=宋体]编辑[/font][font=Times New Roman]struts.xml[/font][font=宋体]文件内容,如代码[/font][font=Times New Roman]2.5[/font][font=宋体]所示。[/font][/size][/align][align=left][size=3][font=黑体]代码[/font]2.5
HelloWorld[font=黑体]示例的[/font]struts.xml[/size][/align][align=left][size=2][font=Courier New]<?xml version="1.0" encoding="UTF-8" ?>[/font][/size][/align][align=left][size=2][font=Courier New]<!DOCTYPE struts PUBLIC[/font][/size][/align][align=left][size=2][font=Courier New]
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"[/font][/size][/align][align=left][size=2][font=Courier New]
"http://struts.apache.org/dtds/struts-2.0.dtd">[/font][/size][/align][align=left][size=2][font=Courier New]<!—[/font][font=宋体]配置[/font][font=Courier New]struts2-->[/font][/size][/align][align=left][size=2][font=Courier New]<struts>[/font][/size][/align][align=left][size=2][font=Courier New]
<!-- [/font][font=宋体]配置包,名称为[/font][font=Courier New]bookcode
-->[/font][/size][/align][align=left][size=2][font=Courier New]
<package name="bookcode" extends='struts-default'>[/font][/size][/align][align=left][size=2][font=Courier New]
<!-- [/font][font=宋体]配置[/font][font=Courier New]Action
-->[/font][/size][/align][align=left][size=2][font=Courier New]
<action name="HelloWorld" class="ch2.helloworld.HelloWorld">[/font][/size][/align][align=left][size=2][font=Courier New]
<!-- [/font][font=宋体]配置返回结果[/font][font=Courier New]
-->[/font][/size][/align][align=left][size=2][font=Courier New]
<result name="success">/ch2/helloworld/success.jsp</result>[/font][/size][/align][align=left][size=2][font=Courier New]
<result name="error">/ch2/helloworld/error.jsp</result>[/font][/size][/align][align=left][size=2][font=Courier New]
</action>[/font][/size][/align][align=left][size=2][font=Courier New]
</package>[/font][/size][/align][align=left][font=Courier New][size=2] [/size][/font][/align][align=left][size=2][font=Courier New]</struts>[/font][/size][/align][align=left][size=3][font=宋体]在默认情况下,[/font][font=Times New Roman]Struts 2[/font][font=宋体]将会自动加载位于[/font][font=Times New Roman]WEB-INF\classes[/font][font=宋体]目录下的[/font][font=Times New Roman]struts.xml[/font][font=宋体]配置文件。[/font][font=Times New Roman]<package>[/font][font=宋体]定义了一个包空间,可以看到,该文件中只配置了一个[/font][font=Times New Roman]Action[/font][font=宋体],[/font][font=Times New Roman]name[/font][font=宋体]为“[/font][font=Times New Roman]HelloWorld[/font][font=宋体]”,对应的[/font][font=Times New Roman]class[/font][font=宋体]为“[/font][font=Times New Roman]ch2.HelloWorld[/font][font=宋体]”,也就是指定[/font][font=Times New Roman]WEB-INF\classes\ch2[/font][font=宋体]目录下的[/font][font=Times New Roman]HelloWorld.class[/font][font=宋体]类文件,当然现在还没有这个文件,后面将会编写该文件。[/font][/size][/align][/font][/size][/size]

junsan 发表于 2008-9-4 12:21

[font=宋体][size=11pt]★[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=黑体][size=11pt]说明[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=宋体][size=11pt]★[/size][/font][size=11pt][/size][align=left][size=3][font=Times New Roman]bookcode[font=方正楷体简体]是本书示例的包名称,该包继承[/font]Struts 2[font=方正楷体简体]框架的默认包[/font]struts-default[font=方正楷体简体],读者在后面章节将会学习使用[/font]extends[font=方正楷体简体]属性。[/font][/font][/size][/align][align=left][size=12.0pt][font=Times New Roman][size=3] [/size][/font][/size][/align][align=left][size=3][font=宋体]另外一个配置就是[/font][font=Times New Roman]result[/font][font=宋体],即[/font][font=Times New Roman]Action[/font][font=宋体]处理后返回给用户的视图资源,从配置中可以看到配置了两个[/font][font=Times New Roman]result[/font][font=宋体]:[/font][font=Times New Roman]success[/font][font=宋体]和[/font][font=Times New Roman]error[/font][font=宋体],分别对应[/font][font=Times New Roman]E:\myweb\ch2[/font][font=宋体]目录下的[/font][font=Times New Roman]success.jsp[/font][font=宋体]和[/font][font=Times New Roman]error.jsp[/font][font=宋体],后面也将会建立这两个文件。[/font][/size][/align][align=left][size=3][font=宋体]本节介绍的[/font][font=Times New Roman]HelloWorld[/font][font=宋体]的思路是用户在客户端输入一个字符串,由[/font][font=Times New Roman]Action[/font][font=宋体]判断输入的字符串是否为空,如果不为空,则返回给用户[/font][font=Times New Roman]success.jsp[/font][font=宋体]页面,并在控制台打印出该字符串;如果用户输入为空,则返回[/font][font=Times New Roman]error.jsp[/font][font=宋体]页面给用户,提示输入为空。这个流程可以用图[/font][font=Times New Roman]2.16[/font][font=宋体]来说明。用户输入字符串,发送请求给[/font][font=Times New Roman]Struts 2[/font][font=宋体]框架的核心控制器[/font][font=Times New Roman]FilterDispatcher[/font][font=宋体],[/font][font=Times New Roman]FilterDispatcher[/font][font=宋体]根据配置,将请求转发给[/font][font=Times New Roman]Action[/font][font=宋体],[/font][font=Times New Roman]Action[/font][font=宋体]是业务控制器,来判断用户输入的内容进行相应的操作。[/font][/size][/align][align=left][size=3]
[img]http://www.rsky.com.cn/Article/UploadFiles/200809/20080904122007344.jpg[/img][/size][size=3][/align][/size][align=left][font=宋体]图[/font][font=Times New Roman]2.16
HelloWorld[/font][font=宋体]的流程图[/font][/align][align=left]
[/align][font=宋体][align=left][size=3][font=宋体]如图[/font][font=Times New Roman]2.16[/font][font=宋体]所示,[/font][font=Times New Roman]HelloWorld[/font][font=宋体]应用中的[/font][font=Times New Roman]Action[/font][font=宋体]是业务控制器。通过第[/font][font=Times New Roman]1[/font][font=宋体]章对[/font][font=Times New Roman]Struts 2[/font][font=宋体]的简单介绍,读者应该知道,[/font][font=Times New Roman]Struts 2[/font][font=宋体]的[/font][font=Times New Roman]Action[/font][font=宋体]可以是一个普通的[/font][font=Times New Roman]Java[/font][font=宋体]类([/font][font=Times New Roman]POJO[/font][font=宋体]),与[/font][font=Times New Roman]Struts 1[/font][font=宋体]有很大的不同,这里的[/font][font=Times New Roman]HelloWorld[/font][font=宋体]内容如代码[/font][font=Times New Roman]2.6[/font][font=宋体]所示。[/font][/size][/align][align=left][size=3][font=黑体]代码[/font]2.6
[font=黑体]业务控制器[/font]HelloWord[/size][/align][align=left][size=2][font=Courier New]package ch2.helloworld;[/font][/size][/align][align=left][size=2][font=Courier New][b]public[/b] [b]class[/b] HelloWorld {[/font][/size][/align][align=left][size=2][font=Courier New]
//[/font][font=宋体]定义[/font][font=Courier New]msg[/font][font=宋体]属性[/font][/size][/align][align=left][size=2][font=Courier New]
[b]private[/b] String msg;[/font][/size][/align][align=left][size=2][font=Courier New]
//msg[/font][font=宋体]的[/font][font=Courier New]get[/font][font=宋体]方法[/font][/size][/align][align=left][size=2][font=Courier New]
[b]public[/b] String getMsg() {[/font][/size][/align][align=left][size=2][font=Courier New]
[b]return[/b] msg;[/font][/size][/align][align=left][size=2][font=Courier New]
}[/font][/size][/align][align=left][size=2][font=Courier New]
//msg[/font][font=宋体]的[/font][font=Courier New]set[/font][font=宋体]方法[/font][/size][/align][align=left][size=2][font=Courier New]
[b]public[/b] [b]void[/b] setMsg(String msg) {[/font][/size][/align][align=left][size=2][font=Courier New]
[b]this[/b].msg = msg;[/font][/size][/align][align=left][size=2][font=Courier New]
}[/font][/size][/align][align=left][size=2][font=Courier New]
//Action[/font][font=宋体]的[/font][font=Courier New]execute()[/font][font=宋体]处理方法[/font][/size][/align][align=left][size=2][font=Courier New]
[b]public[/b] String execute() {[/font][/size][/align][align=left][size=2][font=Courier New]
//[/font][font=宋体]判断条件[/font][/size][/align][align=left][size=2][font=Courier New]
[b]if[/b] (getMsg().equals("")) {[/font][/size][/align][align=left][size=2][font=Courier New]
//[/font][font=宋体]显示错误信息[/font][/size][/align][align=left][size=2][font=Courier New]
System.out.println("no String input!");[/font][/size][/align][align=left][size=2][font=Courier New]
//[/font][font=宋体]返回错误结果[/font][/size][/align][align=left][size=2][font=Courier New]
[b]return[/b] "error";[/font][/size][/align][align=left][size=2][font=Courier New]
} [b]else[/b] {[/font][/size][/align][align=left][size=2][font=Courier New]
//[/font][font=宋体]显示用户输入的信息[/font][/size][/align][align=left][size=2][font=Courier New]
System.out.println(getMsg());[/font][/size][/align][align=left][size=2][font=Courier New]
//[/font][font=宋体]返回一个处理成功结果[/font][/size][/align][align=left][size=2][font=Courier New]
[b]return[/b] "success";[/font][/size][/align][align=left][size=2][font=Courier New]
}[/font][/size][/align][align=left][size=2][font=Courier New]
}[/font][/size][/align][align=left][size=2][font=Courier New]}[/font][/size][/align][align=left][size=3][font=宋体]([/font][font=Times New Roman]1[/font][font=宋体])如代码[/font][font=Times New Roman]2.6[/font][font=宋体]所示,[/font][font=Times New Roman]HelloWorld[/font][font=宋体]没有继承任何类,也没有实现任何接口,是一个标准的[/font][font=Times New Roman]Java[/font][font=宋体]类。定义了一个[/font][font=Times New Roman]msg[/font][font=宋体]属性,对应用户输入的字符串,并提供了[/font][font=Times New Roman]msg[/font][font=宋体]的[/font][font=Times New Roman]get()[/font][font=宋体]、[/font][font=Times New Roman]set()[/font][font=宋体]方法。[/font][font=Times New Roman]execute()[/font][font=宋体]方法是实现业务控制器的默认方法,该方法只是返回一个[/font][font=Times New Roman]String[/font][font=宋体],并没有特别之处。[/font][/size][/align][align=left][size=3][font=宋体]([/font][font=Times New Roman]2[/font][font=宋体])在[/font][font=Times New Roman]execute()[/font][font=宋体]方法中,对[/font][font=Times New Roman]msg[/font][font=宋体]内容进行判断,如果非空,则在控制台打印该字符串,并返回一个“[/font][font=Times New Roman]success[/font][font=宋体]”字符串,对应代码[/font][font=Times New Roman]2.5[/font][font=宋体]中的[/font][font=Times New Roman]success.jsp[/font][font=宋体]页面。[/font][/size][/align][align=left][size=3][font=宋体]([/font][font=Times New Roman]3[/font][font=宋体])如果[/font][font=Times New Roman]msg[/font][font=宋体]为空,则在控制台输出一条警告,并返回“[/font][font=Times New Roman]error[/font][font=宋体]”,对应[/font][font=Times New Roman]error.jsp[/font][font=宋体]页面。读者会发现,[/font][font=Times New Roman]Struts 2[/font][font=宋体]中的[/font][font=Times New Roman]Action[/font][font=宋体]变得简单易懂,很容易对其进行测试。[/font][/size][/align][align=left][size=3][/size][font=宋体][size=11pt]★[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=黑体][size=11pt]说明[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=宋体][size=11pt]★[/size][/font][size=11pt][/size][/align][align=left][size=3][font=Times New Roman]Struts 2[font=方正楷体简体]的业务控制器[/font]Action[font=方正楷体简体]是一个普通的[/font]Java[font=方正楷体简体]类。[/font][/font][/size][/align][align=left][size=3][font=Times New Roman]
[/font][/size] [/align][size=3][font=Times New Roman][font=方正楷体简体][align=left][size=3][font=宋体]到这里为止,该示例只缺少[/font][font=Times New Roman]success.jsp[/font][font=宋体]、[/font][font=Times New Roman]error.jsp[/font][font=宋体]和一个用户输入界面[/font][font=Times New Roman]HelloWorld.jsp[/font][font=宋体],读者可以使用文本编辑器建立,也可以使用各种网页编辑器来制作,以提高效率。[/font][/size][/align][align=left][size=3][font=宋体]([/font][font=Times New Roman]1[/font][font=宋体])[/font][font=Times New Roman]HelloWorld.jsp[/font][font=宋体]内容如代码[/font][font=Times New Roman]2.7[/font][font=宋体]所示。[/font][/size][/align][align=left][size=3][font=黑体]代码[/font]2.7
[font=黑体]输入界面[/font]HelloWorld.jsp[/size][/align][align=left][size=2][font=Courier New]<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>[/font][/size][/align][align=left][size=2][font=Courier New]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/font][/size][/align][align=left][size=2][font=Courier New]<html xmlns="http://www.w3.org/1999/xhtml">[/font][/size][/align][align=left][size=2][font=Courier New]<head>[/font][/size][/align][align=left][size=2][font=Courier New]<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />[/font][/size][/align][align=left][size=2][font=Courier New]<title>Hello World!!</title>[/font][/size][/align][align=left][size=2][font=Courier New]</head>[/font][/size][/align][align=left][size=2][font=Courier New]<body>[/font][/size][/align][align=left][size=2][font=Courier New]
<!—form[/font][font=宋体]的[/font][font=Courier New]action[/font][font=宋体]指向定义的[/font][font=Courier New]action[/font][font=宋体]名称[/font][font=Courier New] -->[/font][/size][/align][align=left][size=2][font=Courier New]<form id="form1" name="form1" method="post" action="HelloWorld.action">[/font][/size][/align][align=left][size=2][font=Courier New]
<p>[/font][font=宋体]输入信息:[/font][/size][/align][align=left][size=2][font=Courier New]
<label>[/font][/size][/align][align=left][size=2][font=Courier New]
<input name="msg" type="text" id="username" />[/font][/size][/align][align=left][size=2][font=Courier New]
</label>[/font][/size][/align][align=left][size=2][font=Courier New]
</p>[/font][/size][/align][align=left][size=2][font=Courier New]
<p>[/font][/size][/align][align=left][size=2][font=Courier New]
<label>[/font][/size][/align][align=left][size=2][font=Courier New]
<input type="submit" name="Submit" value="[/font][font=宋体]提交[/font][font=Courier New]" />[/font][/size][/align][align=left][size=2][font=Courier New]
</label>[/font][/size][/align][align=left][size=2][font=Courier New]
</p>[/font][/size][/align][align=left][size=2][font=Courier New]
</form>[/font][/size][/align][align=left][size=2][font=Courier New]</body>[/font][/size][/align][align=left][size=2][font=Courier New]</html>[/font][/size][/align][align=left][size=3][font=宋体]在代码[/font][font=Times New Roman]2.7[/font][font=宋体]所示内容中,[/font][font=Times New Roman]form[/font][font=宋体]的[/font][font=Times New Roman]action[/font][font=宋体]指向“[/font][font=Times New Roman]HelloWorld[/font][font=宋体]”,提交一个[/font][font=Times New Roman]name[/font][font=宋体]为[/font][font=Times New Roman]msg[/font][font=宋体]的字符串,这是一个普通的[/font][font=Times New Roman]JSP[/font][font=宋体]文件。[/font][/size][/align][align=left][size=3][font=宋体]([/font][font=Times New Roman]2[/font][font=宋体])[/font][font=Times New Roman]success.jsp[/font][font=宋体]内容如代码[/font][font=Times New Roman]2.8[/font][font=宋体]所示。[/font][/size][/align][align=left][size=3][font=黑体]代码[/font]2.8
[font=黑体]输出界面[/font]success.jsp[/size][/align][align=left][size=2][font=Courier New]<%@ page language="java" contentType="text/html; charset=gb2312"%>[/font][/size][/align][align=left][size=2][font=Courier New]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">[/font][/size][/align][align=left][size=2][font=Courier New]<html>[/font][/size][/align][align=left][size=2][font=Courier New]<head>[/font][/size][/align][align=left][size=2][font=Courier New]<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">[/font][/size][/align][align=left][size=2][font=Courier New]<title>[/font][font=宋体]返回界面[/font][font=Courier New]</title>[/font][/size][/align][align=left][size=2][font=Courier New]</head>[/font][/size][/align][align=left][size=2][font=Courier New]<body>[/font][/size][/align][align=left][size=2][font=Courier New]HelloWorld,Struts 2![/font][/size][/align][align=left][size=2][font=Courier New]</body>[/font][/size][/align][align=left][size=2][font=Courier New]</html>[/font][/size][/align][align=left][size=3][font=宋体]代码[/font][font=Times New Roman]2.8[/font][font=宋体]所示内容很简单,只是输出“[/font][font=Times New Roman]HelloWorld,Struts 2![/font][font=宋体]”提示。[/font][/size][/align][align=left][size=3][font=宋体]([/font][font=Times New Roman]3[/font][font=宋体])[/font][font=Times New Roman]error.jsp[/font][font=宋体]内容如代码[/font][font=Times New Roman]2.9[/font][font=宋体]所示。[/font][/size][/align][align=left][size=3][font=黑体]代码[/font]2.9
[font=黑体]错误界面[/font]error.jsp[/size][/align][align=left][size=2][font=Courier New]<%@ page language="java" contentType="text/html; charset=gb2312"[/font][/size][/align][align=left][size=2][font=Courier New]
pageEncoding="gb2312"%>[/font][/size][/align][align=left][size=2][font=Courier New]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">[/font][/size][/align][align=left][size=2][font=Courier New]<html>[/font][/size][/align][align=left][size=2][font=Courier New]<head>[/font][/size][/align][align=left][size=2][font=Courier New]<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">[/font][/size][/align][align=left][size=2][font=Courier New]<title>[/font][font=宋体]错误界面[/font][font=Courier New]</title>[/font][/size][/align][align=left][size=2][font=Courier New]</head>[/font][/size][/align][align=left][size=2][font=Courier New]<body>[/font][/size][/align][align=left][size=2][font=宋体]您没有输入内容![/font][/size][/align][align=left][size=2][font=Courier New]</body>[/font][/size][/align][align=left][size=2][font=Courier New]</html>[/font][/size][/align][align=left][size=3][font=Times New Roman]error.jsp[/font][font=宋体]也只是提示录入错误信息。[/font][/size][/align][/font][/font][/size][/font]

junsan 发表于 2008-9-4 12:21

[font=宋体][size=11pt]★[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=黑体][size=11pt]说明[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=宋体][size=11pt]★[/size][/font][size=11pt][/size][align=left][size=3][font=Times New Roman]Struts 2[font=方正楷体简体]框架支持多种结果类型,默认类型支持[/font]JSP[font=方正楷体简体]。[/font][/font][/size][/align][align=left][size=3][font=Times New Roman]
[/font][/size] [/align][size=3][font=Times New Roman][font=方正楷体简体][align=left][size=3][font=宋体]经过上述编写,第一个[/font][font=Times New Roman]Struts 2[/font][font=宋体]应用已经完成,将[/font][font=Times New Roman]E:\myweb[/font][font=宋体]文件夹复制到[/font][font=Times New Roman]C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps[/font][font=宋体]目录下,启动[/font][font=Times New Roman]Tomcat[/font][font=宋体],准备运行程序。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]在浏览器中输入[/font][font=Times New Roman]http://localhost:8080/bookcode/ch2/helloworld/HelloWorld.jsp[/font][font=宋体],出现如图[/font][font=Times New Roman]2.17[/font][font=宋体]所示界面。[/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]在文本框中输入“[/font][font=Times New Roman]Hello World[/font][font=宋体]!”,单击“提交”按钮,出现如图[/font][font=Times New Roman]2.18[/font][font=宋体]所示界面。[/font][font=Times New Roman]Tomcat[/font][font=宋体]控制台会输出如下内容:[/font][/size][/align][align=left][size=2][font=Courier New]2007-11-21 21:19:56 com.opensymphony.xwork2.validator.ActionValidatorManagerFactory <clinit>[/font][/size][/align][align=left][size=2][font=宋体]信息[/font][font=Courier New]: Detected AnnotationActionValidatorManager, initializing it...[/font][/size][/align][align=left][size=2][font=Courier New]Hello World![/font][/size][/align][align=left][font=Times New Roman][size=3] [/size][/font][size=3][font=宋体]如果用户没有输入内容,直接单击“提交”按钮,返回页面如图[/font][font=Times New Roman]2.19[/font][font=宋体]所示。同时,[/font][font=Times New Roman]Tomcat[/font][font=宋体]控制台输出如下内容:[/font][/size][/align][align=left][size=2][font=Courier New]no String input![/font][/size][/align][align=left][size=2][font=Courier New][img]http://www.rsky.com.cn/Article/UploadFiles/200809/20080904122007267.jpg[/img][/font][/size][size=3][font=Times New Roman]

[/align][/font][/size][align=left][font=宋体]图[/font][font=Times New Roman]2.17
HelloWorld.jsp[/font][font=宋体]页面[/font][font=Times New Roman]           [/font][/align][align=left][font=Times New Roman][img]http://www.rsky.com.cn/Article/UploadFiles/200809/20080904122008201.jpg[/img]               [/font][/align][align=left]
[font=宋体]图[/font][font=Times New Roman]2.18
success.jsp[/font][font=宋体]页面[/font][/align]
[align=left][img]http://www.rsky.com.cn/Article/UploadFiles/200809/20080904122008442.jpg[/img][/align][align=left][font=宋体]图[/font][font=Times New Roman]2.19
error.jsp[/font][font=宋体]页面[/font][/align][align=left][size=3][font=宋体]成功运行这个示例,是了解[/font][font=Times New Roman]Struts 2[/font][font=宋体]的良好开端,这是一个极其简单的示例,并没有完全展示[/font][font=Times New Roman]Struts 2[/font][font=宋体]的所有特点,但给读者带来了一个感性了解[/font][font=Times New Roman]Struts 2[/font][font=宋体]的体验。[/font][/size][/align][align=left][size=3][/size][font=宋体][size=11pt]★[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=黑体][size=11pt]说明[/size][/font][size=11pt][font=Times New Roman] [/font][/size][font=宋体][size=11pt]★[/size][/font][size=11pt][/size][/align][align=left][size=3][font=Times New Roman]Struts 2[font=方正楷体简体]框架默认[/font]URL[font=方正楷体简体]后缀不再是[/font]Struts 1.X[font=方正楷体简体]框架的[/font]*.do[font=方正楷体简体],而是[/font]*.action[font=方正楷体简体]。[/font][/font][/size][/align][align=left][size=3][font=Times New Roman]
[/font][/size] [/align][size=3][font=Times New Roman][font=方正楷体简体][align=left][size=3][font=宋体]初次完成一个[/font][font=Times New Roman]Struts 2[/font][font=宋体]的[/font][font=Times New Roman]Hello World[/font][font=宋体]示例,读者将会了解:[/font][/size][/align][align=left][size=3]—[/size]
[size=3][font=Times New Roman]web.xml[/font][font=宋体]中需要加入[/font][font=Times New Roman]Struts 2[/font][font=宋体]的加载配置。[/font][/size][/align][align=left][size=3]—[/size]
[size=3][font=宋体]在[/font][font=Times New Roman]struts.xml[/font][font=宋体]中定义[/font][font=Times New Roman]Action[/font][font=宋体],其中包含[/font][font=Times New Roman]Action[/font][font=宋体]返回视图的定义。[/font][/size][/align][align=left][size=3]—[/size]
[size=3][font=Times New Roman]Struts 2[/font][font=宋体]的[/font][font=Times New Roman]Action[/font][font=宋体]是一个简单的[/font][font=Times New Roman]Java[/font][font=宋体]类,没有丝毫特别之处。[/font][/size][/align][align=left][size=3]—[/size]
[size=3][font=Times New Roman]Action[/font][font=宋体]的[/font][font=Times New Roman]execute()[/font][font=宋体]方法只是返回一个[/font][font=Times New Roman]String[/font][font=宋体]。[/font][/size][/align][/font][/font][/size][/font][/font][/size]

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.