WebWork深入浅出(二).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WebWork深入浅出(二)

WebWork深入浅出(二) WebWork 原理 通过上面的例子,我们已经了解WebWork开发、运行的基本流程(一定要亲自安装,并开发这个Welcome的例子哦)。如果要在实际项目中使用WebWork,我们必须要了解下面的概念和WebWork的原理。 ? ValueStack( 值堆栈 ) 和 EL( 表达式语言 ) 关于ValueStack的描述: 1、? ValueStack其实就是一个放置Java对象的堆栈而已,唯一特别的是可以使用EL来获得值堆栈中对象属性的数据,并可以为值堆栈的对象属性赋值。 2、? EL,全称Express Language,即表达式语言。不要被语言吓倒,它是简单的对象导航语言。有字符串(例如:方法名)和特殊字符组成(例如用.表示调用对应的属性方法)。通过EL,我们可以存、取对象数据,而且还可以直接访问类的静态数据,调用静态方法。 3、? WebWork的ValueStack底层有第三方开源项目OGNL实现。所以EL也都遵循OGNL的规范。我们在开发中,几乎不需要知道OGNL的细节。 4、? WebWork为每一次请求构建一个ValueStack,并将所有相关的数据对象(例如:Action对象、Model对象等)放到ValueStack中。再将ValueStack暴露给视图页面,这样页面就可以直接访问后台处理生成的数据。 下面我们用一个雇员类为例,使用Junit框架(单元测试框架)来展示ValueStack的功能。 我们有一个Employee类,它有两个属性:姓名,地址。姓名是一个字符串,地址是一个对象,地址类有国家、城市、街道三个属性。代码如下: Employee.java代码如下: public class Employee { ????? private String name; ????? ????? private Address address; ????? ????? public Employee() { ????? } ????? ????? public String getName() { ??????????? return name; ????? } ? ????? public void setName(String name) { ??????????? = name; ????? } ? ????? public Address getAddress() { ??????????? if(address == null) ????????????????? address = new Address(); ??????????? return address; ????? } ????? ????? public void setAddress(Address address) { ??????????? this.address = address; ????? } } ? Address.java代码如下: public class Address { ??????????? private String country; ???????????? private String city; ??????????? private String street; ??????????? ??????????? …… ??????????? //默认的Get和Set方法,省略 ??????????? } 下面出场的是OgnlValueStackTest,它有两个测试方法。分别测试使用EL从ValueStack中取值和存值。代码如下: import com.opensymphony.xwork.util.OgnlValueStack; import junit.framework.TestCase; ? public class OgnlValueStackTest extends TestCase { ??????????? private OgnlValueStack valueStack; ??????????? private Employee employee; ??????????? ??????????? @Override ??????????? protected void setUp() throws Exception { ??????????????????????? valueStack = new OgnlValueStack(); ??????????????????????? e

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档