posts - 97,  comments - 93,  trackbacks - 0
好长时间没写程序了感觉,忘了很多东西,呵呵,今天打开Eclipse写了一个Struts的小应用,也回顾了一遍它的主要内容,这篇随笔就把整理的一些东西贴出来吧。


*******************************************************************************
Model
事务逻辑 -- 要做什么
Action类所扮演的角色  -- 决定做什么
内部状态通常由一组ActionForm JavaBean表示,通常我们建议将事务逻辑与Action分开

*******************************************************************************
View
JSP  标签

*******************************************************************************
Controller
基本的控制器组件是ActionServlet类中的实例servlet,实际使用的servlet在配置文件
中由一组映射(由ActionMapping类进行描述)进行定义。
如:
1     <action-mappings>
2         <action attribute="fStrutsForm" input="/form/fStruts.jsp"
3             name="fStrutsForm" path="/fStruts" scope="request"
4             type="com.nicky.struts.action.FStrutsAction" />
5     </action-mappings>
ActionServlet 控制器
ActionClass  包含事务逻辑
ActionForm 表单数据
ActionMapping 将请求映射到操作
ActionForward  转移对象
ActionError  存储和回收错误

ActionServlet将适当的ActionMapping转发给适当的Action
*******************************************************************************
\WEB-INF\struts-config.xml 可以定义全局转发、Action Mapping、ActionForm Bean、
JDBC数据源等
1 <controller></controller>
2 <action-mappings></action-mappings>
3 <data-sources></data-sources>
4 <form-beans></form-beans>
5 <global-exceptions></global-exceptions>
6 <global-forwards></global-forwards>
7 <message-resources parameter="com.nicky.struts.ApplicationResources"/>
8 <plug-in className=""></plug-in>
其中全局转发是用来在jsp页面之间创建逻辑名称的映射;action-mappings进行内部的流程
控制,可以将请求URL映射到Action类,并将Action类与ActionForm Bean相关联;data-sources
用来配置JDBC数据源,可以定义多个数据源,实例:
 1     <data-sources>
 2         <data-source>
 3             <set-property property="key" value="mysqlDS" />
 4             <set-property property="type" value="javax.sql.DataSource" />
 5             <set-property property="driverClass"
 6                 value="com.mysql.jdbc.Driver" />
 7             <set-property property="url"
 8                 value="jdbc:mysql://DBServer:3306/DBName" />
 9             <set-property property="maxCount" value="20" />
10             <set-property property="minCount" value="2" />
11             <set-property property="user" value="userName" />
12             <set-property property="password" value="userPassword" />
13         </data-source>
14     </data-sources>
   
在Action中调用:
//MySQL 数据源取得
DataSource mysqlds = this.getDataSource(request,"mysqlDS");
对于单数据源 可以直接获取
DataSource mysqlds = this.getDataSource(request);

*******************************************************************************
Action类的perform过时,替以execute也是两个可以处理Http和非Http请求。

*******************************************************************************
使用ActionError和ActionErrors来处理错误,ActionErrors保存着ActionError对象集合,
而每个ActionError都包含关键字,能够映射到资源文件中存储的错误信息。
资源文件是在ActionServlet初始花参数中指定的。
替换例子:
1 error.invalid=<b>Invalid Number{0}</b>
2 ActionError error = new ActionError(‘error.invalid’,new Double(-1));
JSP页显示:Invalild Number –1

*******************************************************************************
struts——>bean、logic、html、template、nested、tiles
<bean:define>定义字符串常数,拷贝bean对象,用现有bean属性来创建新bean。id新定义bean脚本变量名称,type类,value为id属性定义的脚本变量分配一个新的对象,name目标bean的名称。
1         <bean:define id="printString" value="This is Login Page" scope="page"></bean:define>
2         <bean:define id="printString" name="_printString" scope="page" toScope="request" ></bean:define>
<bean:include>标记将对一个资源的响应进行检索,并引入一个脚本变量和字符串类型的页作用域属性,资源可以是一个页,一个ActionForward或一个外部URL
<bean:resource>标记将检索web应用中的资源,并引入一个脚本变量和InputStream或字符串类型的页作用域属性
<bean:write>标记,用来将bean的属性输送到封装的JSP页写入器
struts框架对国际化的支持是使用<bean:message>标记,以及使用java.util数据包中定义的Locale和ResourceBundle类来实现Java2平台对这些任务的支持。
为了实现国际化,所有的资源文件必须都存储在基本资源文件所在的目录中。基本资源文件包含的是用默认地区语言-本地语言编写的消息。如果基本资源文件的名称是ApplicationResources.properties,那么用其他特定语言编写的资源文件的名称就应该是ApplicationResources_xx.properties(xx为ISO编码,如英语是en)。因此这些文件应包含相同的关键字,但关键字的值是用特定语言编写的。
在逻辑标记库中定义了<logic:iterate>标记,它能够根据特定集合中元素的数目对标记体的内容进行重复的检查
<logic:forward>标记能够将响应转发给重定向到特定的全局ActionForward上。
<logic:redirect>标记是一个能够执行HTTP重定向的强大工具
Onblur字段失去了焦点
Struts HTML标记可以大致地分为以下几个功能:显示表单元素和输入控件 显示错误信息 显示其他HTML元素
1         <html:form action="/fStruts">
2             用户名 : <html:text property="userName" size="33"/><html:errors property="userName"/><br/> 
3             密&nbsp;&nbsp;&nbsp;&nbsp;码 : <html:password property="pwdText" size = "35"/><html:errors property="pwdText"/><br/>
4             <html:submit/><html:cancel/>
5         </html:form>
动态模板是模块化WEB页布局设计的强大手段。Struts模板标记库定义了自定义标记来实现动态模板
<template:insert>标记能够在应用程序的JSP页中插入动态模板。这个标记只有一个template属性,用来定义模板JSP页。要插入到模板的页是有多个<template:put>标记来指定的,而这些标记被定义为<template:insert>标记的主体内容
在模板JSP页中使用<template:get>标记能够检索由<template:put>标记插入到JSP页的资源

*******************************************************************************


posted on 2007-10-07 16:55 wqwqwqwqwq 阅读(1003) 评论(0)  编辑  收藏 所属分类: Simple Java

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910




常用链接

留言簿(10)

随笔分类(95)

随笔档案(97)

文章档案(10)

相册

J2ME技术网站

java技术相关

mess

搜索

  •  

最新评论

阅读排行榜

校园梦网网络电话,中国最优秀的网络电话