Struts 2 UI标签–表单,复选框,单选,选择,提交
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属性。