Linux中struts2怎么查看版本,struts2从取值的方式

可以根据Action属性的不同将它分为两类:Field-Driven(属性驱动) Action和Model-Driven(模型驱动) Action。

一、Field-Driven(属性驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型。表单字段直接和Action的属性 对应。

二、实现了modelDriven接口可以在action中直接获得例如User对象,它会将Object getModel()取得的User放到ValueStack中。可以理解为将这个User的属性追加到Action中。它主要是作用是实现类似Struts的FormBean功能。

在struts2中,提供了一种直接使用领域对象的方式,就是让action实现com.opensymphony.xwork2.ModelDriven接口,ModelDriven让你可以直接操作应用程序中的领域对象,允许你在web层和业务层使用相同的对象。

ModelDriven接口只有一个方法

public abstract java.lang.Object getModel();

该方法返回一个用于接收用户输入数据的对象模型,在这个模型对象中的属性可以直接通过(属性名)name来访问,而不需要使用(对象名.属性名)vo.name这种格式来访问了,在action也不需要对对象提供getter和setter方法了,但是必须要在action中进行实例化,获取参数方式:

1、使用默认的action的传递方式,即参数名和属性名一一对应。

2、自定义一个vo,在action中使用这个vo,view使用vo.属性名。

3、使用ModelDriven的方式。

ModelDriven的方式:

publicclassUserVo {

privateString name;

privateString pwd;

publicString getName() {

returnname;

}

publicvoidsetName(String name) {

this.name = name;

}

publicString getPwd() {

returnpwd;

}

publicvoidsetPwd(String pwd) {

this.pwd = pwd;

}

}

importcom.opensymphony.xwork2.ActionSupport;

importcom.opensymphony.xwork2.ModelDriven;

publicabstractclassBaseActionextendsActionSupportimplementsModelDriven{

}

importorg.han.BaseAction;

importorg.han.vo.UserVo;

publicclassLoginActionextendsBaseAction{

privateUserVo vo=newUserVo();

publicUserVo getModel() {

// TODO Auto-generated method stub

returnvo;

}

publicString login(){

System.out.println(vo.getName());

returnnull;

}

}

三种方法的总结:

第一种方法把form的值都放在action文件中,当form提交的项目很多的时候,action的内容将变得很多。项目少的时候可用。

第二种方法将form的值单独放在vo中,解决了action文件臃肿的问题,同时使form和action分开,较好。但是需要在设置和获取的jsp页面上进行标识。

第三种方法在第二种方法的基础上,通过实现特定的接口,去掉了action中的set和get方法,同时去掉了jsp页面上的标识。使后台程序的logic更加清晰。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值