Struts2框架示例Word下载.docx
- 文档编号:21773332
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:27
- 大小:875.74KB
Struts2框架示例Word下载.docx
《Struts2框架示例Word下载.docx》由会员分享,可在线阅读,更多相关《Struts2框架示例Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
(3)容易自定义的控制器–需要时可以自定义每个Action的请求处理。
Struts2可以用你需要的方式来工作!
(4)内置调试–使用内置调试器可以生成问题报告。
(5)易于调整的标签–修改FreeMarker模版即可自定义标签。
不需要再学习taglibAPI!
完全支持JSP,FreeMarker,以及Velocity标签。
4、Web层需要解决的问题:
(1)数据的输入。
如何获得基于无状态HTTP的请求数据?
如何将请求的字符数据转换为对应的模型对象?
(2)输入数据的验证。
如何验证输入数据的合法性并给出明确的错误消息提示?
(3)数据的输出。
如何展现复杂的对象结构?
如何处理复杂的展现逻辑?
(4)数据的传递和共享。
如何在不同的请求或页面之间传递和共享数据?
(5)页面的流程管理。
如何管理Web应用中的页面流程?
(6)模块化的管理。
如何将复杂的Web应用以模块化的方式管理?
(7)灵活可扩展的架构。
如何支持各种不同的展现层技术?
如何与业务层或数据层的各种框架整合?
(8)安全和访问控制的管理。
如何提供基于Web的安全机制和资源访问控制的管理?
(9)代码实现的简洁和高效。
如何让开发步骤和代码维护变得简单?
如何尽量减少开发的中间环节?
如何将公共的功能剥离出来,并可以灵活的组装应用?
(10)其它问题。
异步调用、国际化支持、文件上传、防止重复提交等等。
Struts2系统库
1、下载Struts2系统包
目前MyEclipse6对Struts2的开发还没有提供任何直接的支持,所以不得不手工加入相关的系统jar包文件来开发。
(1)首先从Apache网站上下载struts2.0.1的完整包(FullDistribution),可以从这里下载:
http:
//struts.apache.org/downloads.html。
(2)解压后能够看到下面的各个文件
(3)其中的lib目录为系统包文件(包括了Struts2的全部核心类库和依赖包),而src为其源代码目录
其中的lib目录为系统包文件,并且了解下面的各个文件的主要功能
●struts2-core-2.0.11.jar为Struts2的核心包
●而xwork-2.0.4.jar为XWork2库,Struts2核心包作为底层库存在
●ognl-2.6.11.jar为ObjectGraphNavigationLanguage(OGNL),类似于EL表达式的一种用于访问对象的表达式语言
●freemarker-2.3.8.jar为Struts2所有的ui标记的模板均使用freemarker编写,可通过修改或重写模板使struts2的ui标记按用户的需要进行显示
●commons-logging-1.0.4.jar为Apache的CommonsLoggin包,封装了通用的日志接口,可自动调用Log4J或者JDK1.4或者更高版本的util.logging日志包。
(4)而doc目录下为帮助文件
(5)而app目录下的文件为示例(包含了四个war包形式的示例应用,附带有源码,我们可以直接发布到Tomcat的webapps目录下,也可阅读其源码学习。
)
其中的struts2-blank-2.0.8.war是4个中最基础的一个实例,可以通过它学习了解到下面的知识点
(1)了解struts2的配置
(2)Struts2的表单以及表单验证
(3)Struts2的本地化输出
//127.0.0.1:
8080/struts2-showcase-2.1.8.1/index.jsp
Struts2框架应用示例
1、新建立一个Web项目
(1)项目名称为sshwebcrm、并且添加JSTL标签库
但最好将项目的J2EE系统库的版本选择为J2EE5.0版,以便能够应用MyEclipse的可视化帮助。
(2)设置编译环境为JDK1.6
struts2默认需要Java5的运行环境,和支持ServletAPI2.4,JSPAPI2.0的Web容器.
2、在项目中添加图片等资源文件
3、在项目中添加index.jsp页面
<
%@pagepageEncoding="
gb2312"
isELIgnored="
false"
%>
%@taglibprefix="
c"
uri="
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDXHTML1.0Transitional//EN"
"
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
htmlxmlns="
//www.w3.org/1999/xhtml"
<
head>
title>
蓝梦集团CRM系统的首页<
/title>
linkhref="
c:
urlvalue='
/css/pageContentStyle.css'
/>
"
rel="
stylesheet"
type="
text/css"
/>
scriptlanguage="
javascript"
src="
/javascript/commonJavaScript.js'
type="
text/javascript"
/script>
/head>
body>
jsp:
includepage="
/commonPage/pageHead.jsp"
>
/jsp:
include>
/commonPage/navMenuBar.jsp"
br/>
divid="
someOnePageContent"
strong>
这是蓝梦集团CRM系统(客户关系系统)的首页内容<
/strong>
/div>
/commonPage/authorInfo.jsp"
/body>
/html>
4、将项目部署到Tomcat服务器中
5、测试index.jsp页面http:
8080/sshwebcrm/index.jsp
利用MyEclipse8.X版中的可视化创建项目
1、新建出本Web项目
在MyEclipse中,建立WebProject项目时,如果选择了J2EE5.0后,MyEclipse不会自动添加jstl的系统库,需要手动添加。
注意:
对于一股的应用只需要如下的系统库文件:
●commons-logging-1.0.4.jar
●freemarker-2.3.13.jar
●ognl-2.6.11.jar
●struts2-core-2.1.6.jar
●xwork-2.1.2.jar
●commons-fileupload-1.2.1.jar
OGNL是Object-GraphNavigationLanguage的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。
它使用相同的表达式去存取对象的属性。
MyEclipse将在web.xml文件中添加如下的内容
?
xmlversion="
1.0"
encoding="
UTF-8"
web-appversion="
2.5"
xmlns="
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
welcome-file-list>
welcome-file>
index.jsp<
/welcome-file>
/welcome-file-list>
filter>
<
filter-name>
struts2<
/filter-name>
filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
/filter-class>
/filter>
filter-mapping>
url-pattern>
*.action<
/url-pattern>
/filter-mapping>
/web-app>
同时将系统中的图片等资源文件拷贝
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="
GB18030"
tomcat下如果使用j2ee5.0,会导致EL语言的失效,这个时候需要在jsp页面上方加上:
<
%@pageisELIgnored="
或者在web.xml文件中修改最上面的版本为2.4,以及验证的xsd为web-app_2_4.xsd。
再执行系统的首页,如果没有出现错误,则表明前面的环境搭建是正确的。
在项目中实现用户信息管理功能——构建功能页面
1、在项目中添加一个userLogin.jsp页面
(1)添加userManage目录
(2)在该目录中添加userLogin.jsp页面
(3)设计该userLogin.jsp页面的内容
蓝梦集团CRM系统在线用户登录功能页面<
formaction="
${pageContext.request.contextPath}/userInfoAction.action"
method="
post"
输入右面的认证码:
inputtype="
text"
name="
verifyCodeDigit"
br/>
用户类型:
selectname="
type_User_Admin"
<
optionvalue="
1"
前台用户<
/option>
<
2"
后台管理员<
/select>
您的名称:
userName"
您的密码:
password"
userPassWord"
submit"
value="
提交"
submitButton"
onclick="
this.value='
正在提交请求,请稍候'
reset"
取消"
/form>
也可以部署和测试本页面的效果http:
8080/sshwebcrm/userManage/userLogin.jsp
2、在userManage目录中再添加一个显示登陆成功的页面loginSuccess.jsp
(1)loginSuccess.jsp页面
(2)页面内容如下
%@taglibprefix="
s"
/struts-tags"
%>
蓝梦集团CRM系统在线登录成功信息显示页面<
h2>
s:
propertyvalue="
resultMessage"
/h2>
在这个页面中,使用了Struts2的标签库来获取Action类中所定义的resultMessage成员属性。
而其中的<
就是从地址/struts-tags下面寻找标签库(它定义在Struts2库文件struts2-core-2.1.6.jar里面的文件META-INF/struts-tags.tld中
在Jsp页面中,Struts2的标签库不需要在web.xml中定义,在页面中通过如下的代码直接引用:
上面的<
也可以写成<
%{resultMessage}"
作为变量的表达式语言最好应该放在%{}中,利用property标签,它通过表达式语言,打印Action暴露出的数据对象。
在这个文件的开头有下面的这么一段代码:
DOCTYPEtaglibPUBLIC"
-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.2//EN"
taglib>
tlib-version>
2.2.3<
/tlib-version>
jsp-version>
1.2<
/jsp-version>
short-name>
s<
/short-name>
uri>
/struts-tags<
/uri>
....
大家可以注意到粗斜体的<
刚好与JSP文件引入taglib声明里面的uri属性匹配,这样就能够找到对应的标签定义的位置了。
Tomcat等Web服务器会自动加载所有jar文件下的META-INF子目录下的.tld标记定义文件,这也是为什么好多框架不需要把tld文件复制到WEB-INF目录下的原因。
(3)尽可能用EL表达式和JSTL,而抛弃框架自带的那些非标准和容易变动的自定义标签库
“面向标准”和“尽量独立于框架编程”是我们在应用框架时所应该把握的基本原则,“可维护性”和“移植性”远远好于绑定某个特定标签库的,开发不能只看眼前,要尽量多地考虑系统在以后的可能的扩展和维护方面的要求。
可以将前面的<
改变为使用EL表达式将resultMessage属性的值读取出来。
${requestScope.resultMessage}。
构建出系统中的Action类
1、添加系统中的Action组件类(类似Servlet组件)
(1)类名称为UserInfoAction,包名称为com.px1987.sshwebcrm.action
这可以通过选择菜单File>
New>
Class,或者点击工具栏上的按钮,在打开的新建类的对话框中,输入Package名称为com.px1987.struts2.action,而类名称UserInfoAction,点击Finish按钮后即可将此类创建。
(2)在该Action组件类中添加一个属性、并提供get/set方法
privateStringresultMessage;
(3)重写该类中的execute方法
Action代表一次请求或调用,在Struts2中的Action类一般都需要实现Action接口,或者直接继承基础类ActionSupport、并且要实现默认的execute方法,并返回一个在配置文件中定义的Result(也就是一个自定义的字符串而已)。
当然,Action也可以只是一个POJO(普通Java对象),不用继承任何类也不用实现任何接口——本示例采用该方式。
(PlainOrdinaryJavaObjects)(PlainOldJavaObject)。
Action是一次请求的控制器,同时也可以充当数据模型(下面将要介绍的字段驱动的Action类)的角色,但不应该系统的业务逻辑功能实现放在Action中——由JavaBean组件实现。
packagecom.px1987.sshwebcrm.action;
publicclassUserInfoAction{
privateStringresultMessage;
publicStringgetResultMessage(){
returnresultMessage;
}
publicvoidsetResult
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Struts2 框架 示例