Www.helper3.com
热门关键字: php net javascript java
Struts2基础 专题
专题目录
您的位置:java > Struts2基础专题 > Struts2 表单标签
Struts2 表单标签
作者:--    发布时间:2019-11-20 10:13:41

form 标签的列表是struts的ui标签的一个子集。这些标签可以帮助渲染中需要struts web应用程序和用户界面可以分为三类。本章将带你通过所有三种类型的ui标签:

简单ui标签:

我们已经使用这些标签已经在我们的例子中。让我们来看看一个简单的一些简单ui标签的视图页面email.jsp:

<%@ page language="java" contenttype="text/html; charset=iso-8859-1"
	pageencoding="iso-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" 
"http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<s:head/>
<title>hello world</title>
</head>
<body>
   <s:div>email form</s:div>
   <s:text name="please fill in the form below:" />
   <s:form action="hello" method="post" enctype="multipart/form-data">
   <s:hidden name="secret" value="abracadabra"/>
   <s:textfield key="email.from" name="from" />
   <s:password key="email.password" name="password" />
   <s:textfield key="email.to" name="to" />
   <s:textfield key="email.subject" name="subject" />
   <s:textarea key="email.body" name="email.body" />
   <s:label for="attachment" value="attachment"/>
   <s:file name="attachment" accept="text/html,text/plain" />
   <s:token />
   <s:submit key="submit" />
   </s:form>
</body>
</html>

如果你是知道的html,那么所有使用的标签是很常见的html标签与一个额外前缀s:随着每个标签和不同的属性。当我们执行上面的程序中,我们可以得到以下的用户界面,只要使用所有键设置正确的映射。

struts simple ui tags

如图所示,s:head产生struts2的应用程序所需的javascript和样式表元素。

接下来,我们有s:div和s:text元素。s:div被用来渲染html div元素。这是非常有用的当混合使用html和struts标签。对于这些人来说,他们有选择使用s:div来呈现一个div。 

s:text如图所示用于在屏幕上呈现文本。

接下来我们有s:form标签。 s:form标签决定提交表单的action属性。因为我们有一个文件上传元素的形式,我们必须设置enctype属性multipart。否则,我们就可以保留此空白。

在表单标签的末尾,我们有s:submit标签。这是用来提交表单。当提交表单时,所有的表单值提交到指定的动作在s:form标签。

s:form里面,我们有一个隐藏的属性称为secret。这使得一个隐藏的元素在html中。在我们的案例中,“秘密”的元素值“abracadabra”。此元素向最终用户是不可见的,并用于承载的状态下,从一个视图。 

接下来,我们有s:label, s:textfield, s:password 和 s:textarea标签。这些用于呈现标签,输入字段,密码和文本区域分别。我们所看到的这些动作“struts - 发送电子邮件”例子。这里要注意的最重要的事情是使用“key”属性。 “key”属性用于获取这些控件从属性文件中的标签。

然后,我们有 s:file标记使得输入文件上传组件。该组件允许用户上传文件。在这个例子中,我们使用了“accept” 参数位置s:file 指定允许上传的文件类型的文件标记。 

最后,我们有s:token 标签。令牌的标签,这是用来找出双提交表单是否已经生成一个独特的标记。

表单呈现时,一个隐藏的变量被放置令牌值。让我们说,例如令牌是“abc”。当表单提交时,struts过滤器会检查对存储在会话的令牌令牌。如果匹配,它消除了从会话令牌。现在,如果意外形式(无论是通过刷新或通过点击浏览器的后退按钮)重新提交,表单将被重新提交“abc”作为标记。在这种情况下,过滤器将检查对再次存储在会话中的令牌的令牌。但由于令牌“abc”已经从会话中删除,这将不匹配和struts的过滤器将拒绝请求。

组 ui 标签:

组ui标签被用来创建单选按钮,复选框。让我们来看看一个简单的视图页的helloworld.jsp的复选框和单选按钮标签:

<%@ page contenttype="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>hello world</title>
<s:head />
</head>
<body>
   <s:form action="hello.action">
   <s:radio label="gender" name="gender" list="{'male','female'}" />
   <s:checkboxlist label="hobbies" name="hobbies"
   list="{'sports','tv','shopping'}" />
   </s:form>
</body>
</html>

当我们执行上述程序的输出将看起来类似于以下内容:

struts group ui tags

现在让我们来看看这个例子。在第一个例子中,我们创建了一个简单的单选按钮,“gender”的标签。单选按钮标签的name属性是强制性的,所以我们指定一个名称是“gender”。然后我们提供一个列表的性别。这份名单是填充值“male”和“female”。因此,在输出中,我们得到了一个单选按钮,其具有两个值。

在第二个例子中,我们创建了一个复选框列表。这是收集用户的爱好。用户可以有一个以上的爱好,因此,我们所使用的复选框,而不是单选按钮。该复选框被填充列表"sports", "tv" 和 "shopping"。这就提出了一个复选框列表的爱好。

选择 ui 标签:

让我们来探讨struts提供的选择标记的不同变化。让我们来看看一个简单的视图页的helloworld.jsp的select标签:

<%@ page contenttype="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>hello world</title>
<s:head />
</head>
<body>
   <s:form action="login.action">
      <s:select name="username" label="username"
         list="{'mike','john','smith'}" />

      <s:select label="company office" name="myselection"
         value="%{'america'}"
         list="%{#{'america':'america'}}">
      <s:optgroup label="asia" 
         list="%{#{'india':'india','china':'china'}}" />
      <s:optgroup label="europe"
         list="%{#{'uk':'uk','sweden':'sweden','italy':'italy'}}" />
      </s:select>

      <s:combobox label="my sign" name="mysign"
         list="#{'aries':'aries','capricorn':'capricorn'}"
         headerkey="-1" 
         headervalue="--- please select ---" emptyoption="true"
         value="capricorn" />
      <s:doubleselect label="occupation" name="occupation"
         list="{'technical','other'}" doublename="occupations2"
         doublelist="top == 'technical' ? 
         {'i.t', 'hardware'} : {'accounting', 'h.r'}" />

   </s:form>
</body>
</html>

当我们执行上述程序的输出将看起来类似于以下内容:

struts select ui tags

现在让我们通过个别情况下,一个接一个。

  • 首先,select标签生成的html选择框。在第一个例子中,我们创建了一个简单的选择框“username”和“username”标签。选择框将被填充一个列表,其中包含mike, john 和 smith的名字。

  • 在第二个例子中,我们的公司总部设在美国。它还拥有全球办事处,在亚洲和欧洲。我们要显示一个选择框办事处,但大陆的名称,我们要进行分组的全球办事处。这是optgroup就派上用场了。我们使用s:optgroup标签来创建新组。我们给一个标签和一个单独的列表。

  • 在第三个例子中,使用组合框。组合框是一个输入字段和一个选择框的组合。用户可以选择从选择框中的值,在这种情况下,输入字段自动填入用户已选择的值。如果用户直接输入一个值,然后选择框没有值将被选中。

  • 在我们的例子中,我们有太阳标志的组合框列出。选择框允许用户输入他的太阳星座,如果它不是在列表中只列出了四个条目。我们还添加一个头项的选择框。头项是一个选择框的顶部显示。在我们的例子中,我们要显示 "please select"。如果用户不选择什么,那么我们假设-1的值。在某些情况下,我们不希望用户选择一个空值。在这些条件下,一会的的“emptyoption”属性设置为false。最后,在我们的例子中,我们提供的“capricorn”组合框的默认值。

  • 第四个例子,我们有一个双选。使用双重选择,当想显示了两个选择框。在第一个选择框选择的值确定出现在第二个选择框。在我们的例子中,第一个选择框显示"technical" 和 "other"。如果用户选择技术,我们将在第二个选择框,显示it和硬件。否则,我们将显示会计和人力资源。使用“list”和“doublelist”将属性,如示例中所示,这是可能的。

在上面的例子中,我们做了比较,看看如果顶部的选择框等于介绍技术。如果确实如此,那么,我们显示it和硬件。我们还需要给机顶盒的名称("name='occupations')和底下的框中(doublename='occupations2')。


滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号