Struts 2 UI标签–表单,复选框,单选,选择,提交

时间:2020-02-23 14:36:05  来源:igfitidea点击:

Struts2 UI标记用于在结果页面中生成HTML表单元素。
之前,我们研究了Struts2数据标签和Struts2控制标签,以及如何将OGNL表达式与Struts2标签一起使用。
本教程旨在通过一个简单的项目提供有关最常用的Struts2 UI标签的详细信息。

Struts 2 UI标签

Struts 2 UI标记提供了以下功能:

  • 生成HTML标记语言
  • 将HTML表单数据绑定到Action类属性
  • 将Struts2框架类型从String转换为Objects,反之亦然
  • 加入Struts2框架验证和i18n支持

Struts 2 UI标签示例

一些重要的Struts2 UI标签是:

  • 表单标签:我们可以使用表单标签创建HTML表单,该标签不仅可以生成HTML标记,还可以通过servlet上下文URI生成表单ID,方法和操作。
    例如,如果我们使用Struts2表单标签,如下所示
    生成的相应HTML是:
    请注意,实际上,它自动包含Web应用程序Servlet上下文和Struts2调用的操作前缀。
    它还会创建一个具有特定类的表,我们可以使用该类来拥有自己CSS样式。

  • textfield标记:最广泛使用的Struts2 UI标记之一,用于创建表单中用户输入的输入元素。
    当我们使用此标记时,它将生成一个包含两列的表格行,一列用于标签,另一列用于用户输入,其类型为文本。
    例如;
    生成HTML是:

  • 密码标签:与文本字段标签相同,除了不显示字段并且输入类型为密码。

生成HTML代码段是

  • textarea标记:用于创建表单中的textarea html元素。
    我们可以使用cols和rows属性指定文本区域的大小。

生成HTML代码是

  • checkbox标记:用于生成html表单中的checkbox元素。

生成HTML代码是

  • 选择标记:用于在html页面中生成选择框。
    我们可以使用多个属性来允许多个选择。

生成HTML代码是

  • checkboxlist标记:与选择框相似,唯一的区别在于复选框的呈现方式。

生成HTML代码段是

  • 单选标记:我们可以使用此标记在html页面中生成单选按钮。

生成HTML是

  • doubleselect标记:我们可以使用此标记将两个选择框链接在一起,以便更改第一个选择框中的值可以更改第二个选择框中的选择。
    例如
    生成HTML代码是
    请注意,它会自动创建javascript代码,否则我们将不得不自行编写。

  • 提交标签:用于在html页面中创建提交按钮以提交表单。

生成HTML代码是

让我们创建一个简单的Struts2项目,其中我们可以查看UI标签的用法。
我们的最终项目将如下图所示。

配置文件

web.xml

<s:form action="Welcome" namespace="/">
</s:form>

部署描述符具有使用Struts2框架的配置。

pom.xml

<form id="Welcome" name="Welcome" action="/Struts2UITags/Welcome.action" method="post">
<table class="wwFormTable">
</table></form>

具有struts2核心依赖性的Maven项目配置。

struts.xml

<s:textfield name="name" label="User Name"></s:textfield>

简单的程序包和操作与结果页面的映射。

Java Bean

<tr>
  <td class="tdLabel"><label for="Welcome_name" class="label">User Name:</label></td>
  <td
><input type="text" name="name" value="" id="Welcome_name"</td>
</tr>

一个简单的Java Bean,具有用于属性的getter和setter方法。
一些变量是数组,我们期望表格中有多个值。

Action 类

<s:password name="password" label="Password"></s:password>

简单操作类,基本上是将请求转发到另一个结果页面以生成响应。

显示页面

home.jsp

<tr>
  <td class="tdLabel"><label for="Welcome_password" class="label">Password:</label></td>
  <td
><input type="password" name="password" id="Welcome_password"</td>
</tr>

这是Struts2 UI标记用于为客户端生成HTML响应页面的结果页面。
用户可以填写详细信息并将表单提交给动作类。

调用home操作时,生成HTML页面如下图所示。

结果页代码生成HTML响应是:

<s:textarea name="bio" label="About You" cols="20" rows="3" wrap="true"></s:textarea>

welcome.jsp

<tr>
  <td class="tdLabel"><label for="Welcome_bio" class="label">About You:</label></td>
  <td
><textarea name="bio" cols="20" rows="3" wrap="true" id="Welcome_bio"></textarea></td>
</tr>

一个简单的JSP页面,显示表单中所使用的用户输入的值。

您是否注意到了隐藏标签,我们可以使用此标签在html页面中生成隐藏元素。
name属性对应于操作类的java bean属性。