首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

转:struts2从请求取值的三种模式

2012-09-07 
转:struts2从请求取值的三种方式Struts2作为WEB框架,必不可少的需要请求中取值。(我在这里说是从请求中取值

转:struts2从请求取值的三种方式
Struts2作为WEB框架,必不可少的需要请求中取值。(我在这里说是从请求中取值对于一些读者可能有些晦涩,其实如果我说从页面取值可能就好理解一点了,但除了从已经存在的页面里面能够给后台传值,在地址栏里也可以传,甚至在java代码里也是可以的。)

这里就谈谈struts如何从请求中取值。

我介绍三种方式:

三种取值方式:
1,使用默认的action的传递方式。
2,自定义一个vo,在action中使用这个vo
3,使用ModelDriven的方式。



一、使用默认的action的传递方式

如果我们的请求里面带有两个参数userName和passWord的话,我们只需要在Action里有这两个私有属性就可以了。

请看我的Action:



二、自定义一个vo,在action中使用这个vo

区别于以上的方式,Struts2中允许将页面的值封装起来,放到一个ValueObject(VO)中。就比如上面的例子中的userName和passWord,完全可以放到一个User类中。这样做的好处是,避免如果Action中如果有好多这样的值的话,太多的setter和getter会使得Action看起来比较臃肿的毛病。

看看我们是怎么做的

首先定义User

Java代码


再看看配置文件

Xml代码

这里注意一下,

这是必须的
//需要将user对象new出来;
private User u = new User();

如果不将user new出来的话,会在页面给你一个异常吃吃



Java代码
Struts Problem Report   Struts has detected an unhandled exception:      Messages:     File: study/getValue/ModelDrivenLoginAction.java    Line number: 23        --------------------------------------------     Stacktraces   java.lang.NullPointerException        study.getValue.ModelDrivenLoginAction.execute(ModelDrivenLoginAction.java:23)       sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)       java.lang.reflect.Method.invoke(Method.java:597)  


转:http://www.85java.com/thread-1132-1-1.html

热点排行