zoukankan      html  css  js  c++  java
  • Struts2 表单标签

    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')。

  • 相关阅读:
    JetBrains Rider 在 Mac 环境下将 cs 文件生成 exe
    Unity3d 控制物体移动、旋转、缩放
    Unity3d 脚本使用规则
    Unity3D 脚本模板修改方法
    Intelli IDEA 设置项目编码(Mac)
    搭建LayaBox的生产环境,并helloWorld
    unity Lighting
    流畅度测试
    Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
    Unity GUI(uGUI)使用心得与性能总结
  • 原文地址:https://www.cnblogs.com/pingxin/p/p00020.html
Copyright © 2011-2022 走看看