Struts 2 UI 标签教程

来源:互联网 发布:派尔玻璃优化排版软件 编辑:程序博客网 时间:2024/05/16 10:05

Struts 2 UI 标签例题

 

Struts 2 UI 标签简单易用。你不需要编写HTML代码,UI标签会根据你选择的主题自动生成。默认情况是XHTML主题,XHTML主题使用表格来布置元素。

 

在这个例子中,你将看到如何用Struts 2 UI标签生成一个注册页面。你也将学习如何预填充表单域,设置默认值和在jsp页面得到返回值。

 

register.jsp画面如下:

 

代码如下:

 

如果你查看这个页面的源代码,你可以看到基于XHTML主题生成的HTML代码。

 

Struts 2 值栈(ValueStack)

现在让我们来理解UI标签是如何工作的。值栈(ValueStack)是存储处理请求关联数据的地方。所以表单的所有属性都被存储在值栈(ValueStack)上。UI标签的name属性和值栈(ValueStack)的属性链接。

我们还需要理解UI标签的另外一个重要的属性value。如果你想给特定领域设定一些默认值,那么你需要给value属性设定值。

 

下面是一个将textfield的默认值设置为"Eswar"的例子:

 

在这里我们直接在jsp页面赋值,如果你想通过动作(action)赋值,你可以设置一个像defaultName的属性并将它的值设置为需要的名称。我们可以这么写:

 

这个defaultName属性存储在值栈(ValueStack)上,所以它的值将被赋给textfield。如果你认为你不需要单独属性,你可以设置userName属性并给它赋上需要的值。在这个例子中,我们并不需要给value属性赋值,给community赋值的时候就是采用这种方式。

 

在UI标签的label属性里赋值,在生成HTML的时候它被用来给label赋值。

 

现在我们来看看下面的代码。在框架中index.jsp将被首先调用。

 

在这里,根据在struts.xml文件中设置的映射,将请求转发到populateRegister URL,RegisterAction类的populate()方法将被调用。这里的映射方法是Struts 2的特性,动态方法调用。struts.xml内容如下:

 

注册动作类包含表单的属性和相应的getter和setter方法。它还包含execute()和populate()方法。在populate方法中,首先为了表单域填充和设置默认值。RegisterAction类的内容如下:

 

Textfield和Password标签

让我们来详细的看看UI标签。textfield标签用来创建一个文本域,password标签用来创建一个密码域。

 

 

Radio标签

使用radio标签创建radio按钮。radio标签的list属性用来指定option的值。list属性的值可以是Collection,Map,Array或Iterator。这里我们使用的Array。

 

Select标签

使用select标签显示国家的下拉菜单。这里使用RegisterAction类的countryList属性为option赋值。countryList是值为Country类型的ArrayList类型。Country类型包含countryId和countryName两个属性。countryName是显示在前端的值,countryId是后端的值。这里countryName作为键,countryId作为值。在select标签里通过listKey和listValue属性来设置。初始键和值,可以用headerKey和headerValue属性来设置。

 

Textarea标签

textarea标签用来创建一个textarea。

 

Checkboxlist标签

checkboxlist标签和select标签有些类似,不同的是它显示的是复选框并不是下拉框。它返回值是一个字符串数组。

 

Checkbox标签

checkbox标签返回一个布尔类型值,也就是说选中的话返回真值,相反返回假值。

 

Submit标签

submit标签用来创建提交按钮。

 

现在让我们输入每一项并提交表单。在RegisterAction类中的execute()方法将被调用并且画面将被转到success.jpg画面。

 

下面是演示画面:

 

展示提示信息画面:

 

源代码:下载

源代码 + lib:下载

原创粉丝点击