Struts1.x系列教程(5):HTML标签库

简介:
  HTML标签库中的标签基本上都是和HTML Tag一一对应的。但我们经常使用的主要是<html:form>标签及其子标签。因此,在本文将介绍一下<html:form>及其常用子标签的用法。

一、HTML标签库中的常用标签

1. <html:form>标签

    <html:form>标签对应于HTML<form>标签。用于向服务端提交用户输入信息。<html:form>标签和HTML<form>标签在使用方法上基本相同,但它们的一个重要的区别是<html:form>标签的action属性值所指的Struts动作在struts-config.xml中必须正确配置,否则<html:form>标签会因为未找到Struts动作而抛出异常,从页使JSP页面无法正常运行,而HTML<form>无论action属性的值所指的URL是否正确(或Struts动作是否在struts-config.xml中正确配置),都会正常显示。<html:form>标签的基本用法如下:

   < html:form  action ="Struts动作"  method ="get/post"    >

2. <html:text>标签

    <html:text>标签是最常用的HTML标签,它对应于type属性值为“text”的HTML<input>标签。每一个和HTML Tags对应的HTML标签都有一个property属性,<html:text>标签也不例外。这个属性用于和ActionForm的子类对象实例绑定,也就是说,property属性的值必须和ActionForm子类中相应的属性拥有同样的名子。如果property属性的值在ActionForm子类中未找到相应的属性名,该HTML标签就会由于抛出异常而使JSP页面无法正常显示。<html:text>标签的基本用法如下:

   < html:text  property ="name"   />

 
    <html:text> 标签的其他属性(如size 属性)和<input type=”text” ... /> 标签的相应属性使用方法完全一致。
3. <html:radio>标签

    <html:radio>
标签对应于type 属性值为“radio ”的HTML<input> 标签。如果ActionForm 子类的某个属性有多个可枚举的选择值(如性别为“男”、“女”),就可以使用<html:radio> 来采集用户的输入信息。每一个可能的值对应一个<html:radio> 标签,如性别选项对应两个<html:radio> 标签,代码如下:

< html:radio  property ="sex"  value ="1"   />
< html:radio  property ="sex"  value ="2"   />

    其中两个<html:radio>标签中的property属性值必须都为“sex”,每个value表示选中当前选项后,提交给服务端的值,也就是通过ActionForm的子类实例对象的相应属性可以获得的值。

4. <html:checkbox>
标签

    <html:checkbox> 标签对应于type 属性值为“checkbox ”的HTML<input> 标签。<html:checkbox> 标签的基本用法如下:

< html:checkbox  property ="student"  value ="true"   />

    其中
value 属性表示当勾选这个复选框时提交给服务端的值。

5. <html:multibox>标签

    <html:multibox>标签实际上也对应于type属性值为“checkbox”的HTML<input>标签。但<html:multibox>和<html:checkbox>在映射到ActionForm子类实例对象的相应属性的映射方式不同。所有property属性值相同的<html:multibox>标签被映射到同一个property所指的属性中,并且这个属性是一个数组类型。而<html:checkbox>标签只对应了一个值。<html:multibox>标签的基本用法如下:

上网 < html:multibox  property ="hobbies"  value ="上网"   />
旅游
< html:multibox  property ="hobbies"  value ="旅游"   />
足球
< html:multibox  property ="hobbies"  value ="足球"   />
围棋
< html:multibox  property ="hobbies"  value ="围棋"   />

     其中value 属性表示选中当前复选框的返回值。

6. <html:select> <html:option> 标签

    <html:select> <html:option> 组合对应了HTML 中的<select> <option> 组合。这两个标签的基本用法如下:

   < html:select  property ="work"   >
      < html:option  value ="软件工程师"   />
      < html:option  value ="软件测试工程师"   />
      < html:option  value ="项目经理"   />
      < html:option  value ="高级顾问"   />
      < html:option  value ="其他"   />
  </ html:select >

     其中value 属性表示在下拉列表框中选择某一项时向服务端提交的值。

7. <html:submit>和<html:reset>标签

    这两个HTML标签分别对应了type为“submit”和“reset”的HTML<input>标签。它们的基本用法如下:

< html:submit  value ="提交" />
< html:reset  value ="重置" />

其中value 属性表示在按钮上显示的信息。
8..  其他的 HTML 标签
     HTML 标签库中还有很多其他的标签。关于这些标签的详细信息读者可以参阅Struts 的官方网站,URL 如下:
二、 HTML 标签库演示实例

    
在本文给出了一个完整的例子来演示如何通过HTML 标签来展现用户界面,以及如何从由HTML 标签生成的界面中获取用户提交的信息。实现这个例子需要如下四步:

【第 1 步】 建立使用HTML 标签的JSP 页面

    
<samples 工程目录> 中建立一个htmlTags.jsp 文件,并输入如下的内容:
   <% @ page pageEncoding = " GBK " %>
  
<% @ taglib uri = " http://struts.apache.org/tags-html "  prefix = " html " %>
  
< html >
    
< head >
      
< title > HTML标签库演示 </ title >
    
</ head >
  
< body >
     
< html:form  action ="htmlTags"  method ="post"    >
       姓名:
< html:text  property ="name"    />    < />
       性别: 男 
< html:radio  property ="sex"  value ="1"   />
              女 
< html:radio  property ="sex"  value ="2"   />   < />
       学生: 
< html:checkbox  property ="student"  value ="true"   />   < />
       爱好: 上网 
< html:multibox  property ="hobbies"  value ="上网"   /> &nbsp;
              旅游 
< html:multibox  property ="hobbies"  value ="旅游"   /> &nbsp;
              足球 
< html:multibox  property ="hobbies"  value ="足球"   /> &nbsp;
              围棋 
< html:multibox  property ="hobbies"  value ="围棋"   />   < />
       职业:
              
< html:select  property ="work"   >
                  
< html:option   value =""   />
                  
< html:option   value ="软件工程师"   />
                  
< html:option  value ="软件测试工程师"   />
                  
< html:option  value ="项目经理"   />
                  
< html:option  value ="高级顾问"   />
                  
< html:option  value ="其他"   />
              
</ html:select >
              
< />
              
< html:submit  value ="提交" /> &nbsp;&nbsp;&nbsp; < html:reset  value ="重置" />
      
</ html:form >
    
</ body >
  
</ html >

     现在 htmlTags.jsp 还运行不了,因为 htmlTags 动作并没有在 struts-config.xml 中配置。下面我们先在 struts-config.xml 中配置一下这个 htmlTags 动作和相应的 ActionForm 的子类。  

【第2步】 配置 ActionForm 子类和 htmlTags 动作

    
打开 struts-config.xml ,在 <form-beans> 中加入如下的 <form-bean> 标签:

   < form-bean  name ="htmlTagsForm"  type =" actionform.HtmlTagsForm"   />

     然后在 <action-mappings> 中加入如下的 <action> 标签:

   < action  name ="htmlTagsForm"  path ="/htmlTags"  scope ="request"  type =" action.HtmlTagsAction"   />

     我们从上面两段配置代码可以看出,ActionForm 的子类为HtmlTagsForm ,动作类为HtmlTagsAction ,下面我们就来建立这两个类。
【第 3 步】 实现HtmlTagsForm

    
在本例中,HtmlTagsForm 类只含有用于接收用户提交的信息的属性,除此之外,并未在这个类中做其他的事(如验证数据)。在<samples 工程目录>"src" actionform 目录中建立一个HtmlTagsForm.java 文件,并输入如下的代码:

   package  actionform;
  
  
import  org.apache.struts.action. * ;
  
public   class  HtmlTagsForm  extends  ActionForm
  {
      
private  String name;
      
private  String sex;
      
private  Boolean student;
      
private  String[] hobbies;
      
private  String work;
      
public  String getWork()
      {
          
return  work;
      }
      
public   void  setWork(String work)
      {
          
this .work  =  work;
      }
      
public  String[] getHobbies()
      {
          
return  hobbies;
      }
      
public   void  setHobbies(String[] hobbies)
      {
          
this .hobbies  =  hobbies;
      }
      
public  String getName()
      {
          
return  name;
      }
      
public  String getSex()
      {
          
return  sex;
      }
      
public   void  setSex(String sex)
      {
          
this .sex  =  sex;
      }
      
public   void  setName(String name)
      {
          
this .name  =  name;
      }
      
public  Boolean getStudent()
      {
          
return  student;
      }
      
public   void  setStudent(Boolean student)
      {
          
this .student  =  student;
      }
  }

【第
4 步】 建立HtmlTagsAction

    HtmlTagsAction
类的主要功能是通过HtmlTagsForm 类的实例对象读取用户提交的信息,并将它们输出的客户端浏览器。在<samples 工程目录>"src"action 目录中建立一个HtmlTagsAction.java 文件,并输入如下的代码。
   package  action;
  
  
import  javax.servlet.http. * ;
  
import  org.apache.struts.action. * ;
  
import  java.io. * ;
  
import  actionform.HtmlTagsForm;

  
public   class  HtmlTagsAction  extends  Action
  {
      
public  ActionForward execute(ActionMapping mapping, ActionForm form,
              HttpServletRequest request, HttpServletResponse response)
      {
          HtmlTagsForm htForm 
=  (HtmlTagsForm) form;
          
try
          {
              response.setCharacterEncoding(
" GB2312 " );
              PrintWriter out 
=  response.getWriter();
              out.println(
" 姓名: "   +  htForm.getName()  +   " <p/> " );
              
if  (htForm.getSex()  !=   null )
                  out.println(
" 性别: "   +  (htForm.getSex().equals( " 1 " ?   " "  :  " " +   " <p/> " );
              out.println(
" 学生: "   +  (htForm.getStudent()  ==   null   ?   " "  :  " " +   " <p/> " );
              
if  (htForm.getHobbies()  !=   null )
              {
                  out.println(
" 爱好: " );
                  
for (String hobby: htForm.getHobbies())
                      out.println(hobby 
+   "    " );
                   out.println(
" <p/> " );
              }
              
if (htForm.getWork()  !=   null )
                  out.println(
" 职业: "   +  htForm.getWork());
          }
          
catch  (Exception e)
          {
          }
          
return   null ;
      }
  }
     启动Tomcat ,并在IE 中输入如下的URL

http://localhost:8080/samples/htmlTags.jsp
    在出现用户界面后,输入如图1所示的信息。


图1
 
在点击“提交”按钮后,将显示如图2 所示的页面。



图2







 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/215240,如需转载请自行联系原作者

相关文章
|
1月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
5月前
|
移动开发 JavaScript 前端开发
Vue系列教程(05)- 基础知识快速补充(html、css、js)
Vue系列教程(05)- 基础知识快速补充(html、css、js)
106 0
|
4月前
|
数据采集 JavaScript 小程序
laravel8(四)使用simple_html_dom库解析html
首先:simple_html_dom下载地址: github.com/samacs/simp… 这是一个PHP解析html的一个库。 这玩意还是很有用的,比如我们在使用PHP做爬虫的时候,需要解析html中的内容等。 他的强大之处不仅仅只是帮助我们验证html文档;更能解析不符合W3C标准的html文档。 关于如何引入第三方类库,请移步《laravel5.8(十)引入第三方类库》laravel8中的设置方法也大同小异。 一:加载 html 有三种方式调用这个类: 1. 从url中加载html文档 2. 从字符串中加载html文档 3. 从文件中加载html文档
58 1
|
1月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
|
1月前
|
移动开发 前端开发 JavaScript
15.HTML5视频播放器制作教程
15.HTML5视频播放器制作教程
25 0
|
2月前
|
数据采集 数据安全/隐私保护
高效网络采集实践:使用 Haskell 和 html-conduit 下载 www.baidu.com 视频完整教程
网络采集在当今信息时代中发挥着关键作用,用于从互联网上获取数据并进行分析。本文将介绍如何使用 Haskell 进行网络编程,从数据采集到图片分析,为你提供一个清晰的指南。我们将探讨如何使用爬虫代理来确保高效、可靠的数据获取,并使用 Haskell 的强大功能来分析和处理数据。
|
2月前
|
Web App开发
某教程学习笔记(一):04、HTML基础
某教程学习笔记(一):04、HTML基础
13 0
|
3月前
|
前端开发 JavaScript 容器
【详细教程】HTML、CSS 和 JS 实现一个任务管理工具-ToDoList
【详细教程】HTML、CSS 和 JS 实现一个任务管理工具-ToDoList
42 1
【详细教程】HTML、CSS 和 JS 实现一个任务管理工具-ToDoList
|
4月前
|
移动开发 HTML5 容器
HTML入门级别教程(持续更新)
HTML入门级别教程(持续更新)
|
4月前
|
数据采集 监控 JavaScript
巧用简单工具:PHP使用simple_html_dom库助你轻松爬取JD.com
本文将介绍如何使用PHP语言和一个简单的第三方库simple_html_dom来爬取JD.com的商品信息。simple_html_dom是一个轻量级的HTML解析器,它可以方便地从HTML文档中提取元素和属性,而无需使用正则表达式或DOM操作。本文将通过一个实例来展示如何使用simple_html_dom库来爬取JD.com的商品名称、价格、评分和评论数,并将结果保存到CSV文件中。本文还将介绍如何使用代理IP技术来避免被目标网站封禁或限制。
巧用简单工具:PHP使用simple_html_dom库助你轻松爬取JD.com