admin 管理员组

文章数量: 887021


2023年12月23日发(作者:eclipse如何设置jdk版本)

Struts2页面数据流向及获取方法

Struts2架构下的视图(浏览器页面)由JSP组成,而这些JSP又是通过Action将他们衔接在一起,这样就形成了内容显示和业务逻辑的有机结合。每个JSP页面的数据不仅可以从上级Action获得,而且还可以从全局Session获得,也可以从在本页面实例化的Bean中获得。本文重点介绍JSP从上级Action获得数据和从Bean获得数据的原理和方法。

BeanJSP(含Form及Action)BeanBeanBeanBean响应Action的JSP响应Action的JSPBean上图是一个典型的Struts2框架下的JSP、Bean、Action关系图,JSP页面可以实例化多个Bean,这些Bean为该JSP页面填充数据,JSP也通过本页面Form表单的Action获取Form表单的数据,然后传递给下级JSP。

(一)JSP获取Bean属性值

如果JSP页面需要动态获得一些内容的初始值来填充页面元素,则需要实例化一个Bean,通过设置Bean的某个属性值A,并将这个属性值作为获取另外符合条件的属性值参数传递给Bean,再获取这个属性值填充页面内容,具体编程步骤如下:

1.创建Bean

根据业务逻辑编写相应的Bean代码,添加相应的属性即getter/setter方法。

/**

*

*/

package ;

import ;

Import ist;

/**

* @author crazyicelee

*

*/

public class book {

private List mathBook;

private String nameP;

/**

* @param mathBook the mathBook to set

*/

public void setMathBook(List mathBook) {

ok = mathBook;

}

/**

* @return the mathBook

*/

public List getMathBook() {

List ll=new ArrayList();

("一年级数学上册");

("二年级数学上册");

mathBook=ll;

return mathBook;

}

/**

* @param name the name to set

*/

public void setNameP(String name) {

= name;

}

/**

* @return the name

*/

public String getNameP() {

nameP="skjhdfkjahsfdkj";

return nameP;

}

}

2.在JSP页面实例化该Bean并操作Bean属性

Struts2对Bean的操作非常简单,有现成的标签可以使用,主要有三个标签配合使用。

用来实例化一个Bean,id是在Bean标签外引用Bean属性时的实例标识,name是指定该Bean所在包及对应的class名称。

用来给Bean的某个指定属性赋值,name是属性名称,value是给定的值,这个标签必须放在标签体内,在实际使用中发现如果使用value赋值则并没有赋值成功,而必须将值写到标签体内,才能够赋值成功,即李征兵才能够赋值成功。

用来显示Bean某个指定属性的值,value的值是属性名称。如果要显示的属性值在标签体外,则必须使用#这种表达式来指定是那个Bean的那个属性。例如:

李征兵

显示集合类Bean属性的某个指定key的值获取方法如下:

显示对象类属性的对象属性获取方法如下(其中:b是Bean的id,user是该Bean属性名称,name是对象属性的属性名称,可以以此类推实现多级属性取值):

另外:针对对象型属性赋值必须先定义一个对象,然后把这个对象赋给该属

性对象,即对象类型的属性返回前必须实例化。例如,下面的Bean getter方法:

public User getUserObject() {

}

User u=new User("李","征兵");

userObject=u;

return userObject;

(一)响应Action的JSP获取Action属性值

Struts2将Action设置为一个特殊的Bean,所以Action也具备Bean的所有特性,也就是Action获取的数据也可以用Bean的操作方式操作。例如:一个Action的响应JSP获取该Action从上级JSP页面的Form表单获取的数据就可以用下面的代码实现。

1.集合类型属性的获取和显示

Bean的属性如果是集合类型的数据(List、Map、Array、Collection、Enumeration、Iterator等),则必须通过遍历器选取该属性的所有值。遍历集合型属性值的所有元素代码如下:

2.将Bean的属性值赋给JSP页面Form表单的一些字段作为初始值

Form表单的一些字段往往需要从服务器端动态获取一些值作为初始值,这时候就需要通过Bean的方式提供,当然也可以从上级Action中获取。常见的如等标签中的list属性就从Bean取得初始值:

其中#就是id为author的Bean中List类型的属性返回的值。


本文标签: 属性 获取 页面 对象