« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。 |
Blog信息 |
blog名称: 日志总数:210 评论数量:205 留言数量:-19 访问次数:922913 建立时间:2007年5月10日 |

| |
[struts2]Strus 2的新表单标志的使用 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/11/11 15:36:47 |
Struts 2为大家提供了不少常用的很酷的表单标志,简化了我们程序员的工作。不过,由于这些都是新标志,大家可能在使用上还存在不少疑问。本文将就朋友们的回复、留言或Email上的问题,分别对这些酷标志进行讲述。
表单标志使用小技巧
Struts 2的表单标志在输出(render)HTML时,使用了模板的概念,增加了复杂性(因为它不像Struts 1.x的表单标志,它通常都是一个标志对应HTML的一个元素),因此大家在使用时,需要一些技巧:
Struts 2的UI标志的表单标志默认是以表格布局,按钮是右对齐的。如果你不喜欢此风格,你可以简单地将<s:form />标志的“theme”属性设为“simple”,然后用以往的做法自已布局表单元素(注意:此法有利有弊,弊就是当你将“theme”属性设为“simple”时,表单标志以最简单方式输出HTML,所以你可能失去一些默认输出提供的便利,如:友好的错误信息的显示,或客户端的表单验证等)。当然更好的做法是通过CSS或自定义主题(theme)然后应用到整个应用程序,这样可以获 |
|
[struts2]Struts 2中的OGNL 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/11/11 15:29:10 |
本人是一个EL(Expression Language,以下译为表达式语言)的支持者。因为我对<% %>写法极为反感,忘记了在那本书上看到的一句话——“使用标志(Tag)的一个目的就是避免在JSP页面中出现过多的<%%>的语句,使页面与后台代码分离。”
表达式语言主要有以下几大好处:
避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;
支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;
简单明了地表达代码逻辑,使用代码更可读与便于维护。
Struts 2中的表达式语言
Struts 2支持以下几种表达式语言:
|
|
[struts2]转换器(Converter)——Struts 2.0中的魔术师 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/11/9 21:58:23 |
在我已往的Struts 1.x项目经验中,有个问题不时的出现——在创建FormBean时,对于某个属性到底应该用String还是其它类型?
开发Web应用程序与开发传统桌面应用程序不同,Web应用程序实际上是分布个不同的主机(当然也可以同一个主机,不过比较少见)上的两个进程之间互交。这种互交建立在HTTP之上,它们互相传递是都是字符串。换句话说, 服务器可以的接收到的来自用户的数据只能是字符串或字符数组,而在服务器上的对象中,这些数据往往有多种不同的类型,如日期(Date),整数(int),浮点数(float)或自定义类型(UDT)等,如图1所示。因此,我们需要服务器端将字符串转换为适合的类型。
|
|
[struts2]在Struts 2.0中使用国际化(i18n) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/11/9 21:05:23 |
国际化是商业系统中不可或缺的一部分,所以无论您学习的是什么Web框架,它都是必须掌握的技能。
其实,Struts 1.x在此部分已经做得相当不错了。它极大地简化了我们程序员在做国际化时所需的工作,例如,如果您要输出一条国际化的信息,只需在代码包中加入FILE-NAME_xx_XX.properties(其中FILE-NAME为默认资源文件的文件名),然后在struts-config.xml中指明其路径,再在页面用<bean:message>标志输出即可。
不过,所谓“没有最好,只有更好”。Struts 2.0并没有在这部分止步,而是在原有的简单易用的基础上,将其做得更灵活、更强大。
国际化Hello World
下面让我们看一个例子——HelloWorld。这个例子演示如何根据用户浏览器的设置输出相应的HelloWorld。
在Eclipse创建工程配置开发和运行环境(如果对这个步骤有问题,可以参考我早前的文章《 |
|
[struts2]常用的Struts 2.0的标签库 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/11/9 10:49:18 |
在上一篇文章《为Struts 2.0做好准备》中,我过于详细地介绍了Struts 2.0开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节。如果,您看完《为Struts 2.0做好准备》后,还有什么不明白,或者没法运行文中例子,请联系我。我的E-MAIL:Max.M.Yuan@gmail.com。
在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag Library)作比较。
|
[struts2]Starting Struts2--Core Components(4) (翻译) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/10/27 13:30:12 |
Results / View Technologies
目前为止的所有例子,都是假定JSP为渲染视图的技术.尽管它可能是最普通的,但它决不是渲染结果的唯一方法.
结果类型和视图技术的使用紧密相联.在前面的章节,我们看到如果"type"属性无值或是值为"dispatcher",就会将使用JSPs来渲染.在Struts2应用中,还有三种其他的技术可以替换JSPs:
Velocity Templates
Freemarker Templates
XSLT Transformations
记住,你同样可以从现有的视图技术实现一种新的结果类型.那时你将获得额外的可用结果.
除了个别的语法不同,Freemarker和Velocity都与JSP非常相似.所有的action的属性(通过getter方法)在模版中都是可用的,以及JSP标签库和在标签库内使用OGNL.在actions配置中可以很容易的将JSP模版的名称替换成Velocity或是Fre |
|
[struts2]Starting Struts2--Core Components(3) (翻译) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/10/27 13:29:22 |
Result Types
从action生成结果,并返回组用户不同的结果值,不都需要相同的类型.结果"success"可以渲染为一JSP页面,但结果"error"可能需要发送一个HTTP头返回给浏览器.
结果的类型使用"type"属性在结果节点配置.与"name"属性相似,这个属性也有一个默认值-"dispatcher"-将渲染JSPs.大多数的时间,你将使用所提供的结果类型,但有时也可能提供自定义的实现.
Request and Form Data
为了要做出Action应该如何工作的决定,并且提供数据的数据库持久对象,Action可能需要从请求字符串中访问值,并生成数据.
Struts2沿序JavaBean的方式-如果你想访问数据,你需要为字段提供一个getter和setter方法.访问请求字符串和form里的值是一样的.每个请求字符串或是Form里的值都是一个简单的名值对,所以为一个特定的名称赋值,需在action里 |
|
[struts2]Starting Struts2--Core Components(2) (翻译) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/10/27 13:28:58 |
The Package Tag:
<package … />被用于配置集合,以便于共享属性,例如拦截器栈或是URL命名空间.通常它由action的配置组成,但它可以包含任何类型的配置信息.它对隔离功能的组织也非常有用,可以更进一步,将其分成不同的配置文件.
这个标签有如下属性:
.name--开发人员为包指定的唯一的名称 .extends--此包将扩展的包的名称;扩展包里的所有配置信息(包含action配置),在新包里都是可用的,在新的命名空间之下. .namespace--命名空间提供了一个URL到包的映射.例如,两个不同的包,命名空间属性分别是"package1"和"package2",URL看起来则是"/myWebApp/package1/my.action"和"/myWebApp/package2/my.ac |
|
[struts2]Starting Struts2--Core Components(1)(翻译) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2007/10/27 13:28:18 |
从一个高度层次来看,Strtsu2属性pull-MVC(或是MVC2)框架;这与传统的MVC框架略有不同,因为action的角色采用模型,而不是控制器,虽然这样有一些重叠."pull"来自于视图从action拉数据,而不是持有一个分开的可用模型对象.
我们知道在概念方面意味着什么,但在执行层面意味着什么?这个模型-视图-控制器模式在Struts2中被实现成了五个核心部分--actions,拦截器,值栈/OGNL,结果类型和结果/视图技术.
图1:The MVC / Struts2 Architecture
图1描述了从Struts2高度层面上的结构, 包含了模型,视图和控制器.控制器是一个实现了Struts2里分派Servlet过滤器以及拦截器,模型实现的actions,视图则是由结果类型和结果的组成.值栈和ONGL提供了 |
|
|
站点首页 | 联系我们 | 博客注册 | 博客登陆
Sponsored By W3CHINA W3CHINA Blog 0.8 Processed in 0.141 second(s), page refreshed 144815425 times. 《全国人大常委会关于维护互联网安全的决定》 《计算机信息网络国际联网安全保护管理办法》 苏ICP备05006046号
|