当前位置: 首页 >>> 编程开发 >>> Java >>> 正文

Struts2标签介绍

时间:2009-11-14 22:56:42来源:网络 作者:未知 点击:0
Struts2的表单标签

Struts2的表单标签

所有的表单标签可以分为两种:form标签本身和单个表单元素的标签。Struts2的表单元素标签都包含了非常多的属性。但有很多属性完全是通用的。

表单标签的通用属性

所有表单标签处理类都继承了UIBean类,UIBean包含了一些通用属性,这些通用属性分成3种:

1,模板相关属性;2,javascript相关属性;3,通用属性。

除了这些属性之外,所有的表单元素标签都存在一个特殊的属性:form,这个属性引用表单元素所在的表单,通过该form属性,可以实现表单元素和表单之间的交互。例如,我们可以通过${parameters.form.id}来取得表单元素所在表单的ID。表单标签的通用属性有以下几类:

1,模板相关的通用属性:可以指定该表单标签所用的模板和主题。

2,javascript相关的通用属性:指定在鼠标在该标签上操作时的javascript函数。

3,设置表单元素的提示:当鼠标在这引动元素上时,系统将出现提示。Struts2将这种特性称为Tooltip。

4,设置表单元素的CSS样式。

表单标签的name和value属性

name属性会映射到Action中的属性名称,value属性则代表此属性的值。例子如下:

<!-- 将下面文本框的值绑定到Action的person属性的firstName属性 -->
<s:textfield name="person.firstName" />

<!-- 使用表达式生成表单元素的值 -->
<s:textfield name="person.firstName" value="${person.firstName}" />

实际上Struts2已经自动处理了属性内容的赋值工作,因此我们只需要使用第一种方式就可以了。

checkboxlist标签

checkboxlist标签可以一次创建多个复选框,用于一次生成多个HTML标签中的<input type="checkbox">,它根据list属性指定的集合来生成多个复选框。因此使用该标签要指定一个list属性。其它都是通过属性,但是有两个常用属性:

1,listKey:该属性指定集合元素中的某个属性作为复选框的key

2,listValue:该属性指定集合元素中的某个属性作为复选框的value

下面是一个JSP页面的例子:
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>使用s:checkboxlist生成多个复选框</title>
<s:head/>

</head>
<body>
<h3>使用s:checkboxlist生成多个复选框</h3>
<s:form>
<!-- 使用简单集合来生成多个复选框 -->
<s:checkboxlist name="a" label="请选择您喜欢的图书" labelposition="top"
list="{'Spring2.0' , 'J2EE' , 'Ajax'}"/>
<!-- 使用简单Map对象来生成多个复选框 -->
<s:checkboxlist name="b" label="请选择您想选择出版日期" labelposition="top"
list="#{'Spring2.0':'2006年10月' , 'J2EE':'2007月4月' , 'Ajax':'2007年6月'}"
listKey="key"
listValue="value"/>
<s:bean name="lee.BookService" id="bs"/>
<!-- 使用集合里放多个JavaBean实例来生成多个复选框 -->
<s:checkboxlist name="b" label="请选择您喜欢的图书" labelposition="top"
list="#bs.books"
listKey="name"
listValue="author"/>
</s:form>
</body>
</html>
JavaBean和JavaBean的访问类代码如下:

package lee;
public class Book
{
private String name;
private String author;

public Book()
{
}
public Book(String name , String author)
{
   this.name = name;
   this.author = author;

}

public void setName(String name)
{
   this.name = name;
}
public String getName()
{
   return this.name;
}

public void setAuthor(String author)
{
   this.author = author;
}
public String getAuthor()
{
   return this.author;
}

}

package lee;
public class BookService
{
public Book[] getBooks()
{
   return new Book[]
   {
    new Book("Spring2.0","李"),
    new Book("J2EE","李"),
    new Book("Ajax","李")
   };
}
}

combobox标签

combobox标签生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name属性,也就不会产生请求参数。使用该标签时,需要指定一个list属性,该list属性指定的集合将用于生成列表框。例子如下:


------分隔线----------------------------
请自觉遵守相关政策法规,严禁发布色情/暴力/反动言论。
特别推荐