Struts1的html标签主要是为了绘制HTML页面标签元素,通过与Struts1框架的集成,增强功能

首先,在使用前,需要引入tld文件

<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>

标签详细讲解

  html:link  对应<a>标签

  首次打开,会自动生成jsessionid,如果浏览器支持cookie,会自动将jsessionid添加到cookie中,下次访问不会再次添加jsessionid了,jsessionid相当于session的一个标志。用于会话跟踪

  能够对参数进行url编码,并且自动为请求添加请求后缀,如.do,.action等

       <%
Map<String,String> parMap = new HashMap<>();
parMap.put("x","1");
parMap.put("y","2");
parMap.put("z","3");
request.setAttribute("parMap",parMap);
Date now = new Date();
request.setAttribute("now",now);
request.setAttribute("name","张三李四咯");
%>
<%--参数名为username,从web作用域中查找名为name的值--%>
<html:link action="/regUser" paramId="username" paramName="name">注册 - 对参数URL编码</html:link><br/>
<html:link action="/regUser" paramId="t" paramName="now" paramProperty="time">对象的某个属性作为参数</html:link><br/>
<html:link action="/regUser" name="parMap">Web作用域中的Map作为参数集合</html:link><br/>
如果需要设置的请求参数是某个对象的Map类型成员变量,则可以使用 name+property两个属性进行设置
对于生成的请求地址,会自动添加项目名与请求后缀
例如:<html:link action="/regUser">注册</html:link>

  html:select         对应 select标签

  html:option        生成一个option元素

  html:options        生成多个option标签

  html:optionsCollection  生成多个option标签

    <html:select property="regUser.gender">
<c:forEach items="${requestScope.genders}" var="genderAttr">
<!-- 因为html:option只能生成一个下拉框,所以需要迭代 -->
<html:option value="${genderAttr.value}" key="${genderAttr.key}"/>
</c:forEach>
</html:select> <html:select property="regUser.gender">
<html:options collection="genders" labelProperty="value" property="key"/>
</html:select> <html:select property="regUser.gender">
<html:optionsCollection name="genders" label="value" value="key"/>
</html:select>
说明:regUser.gender 表示提交的请求中接收参数的变量;genders是上一个Action中传递过来的下拉列表对象;value用于显示;
key作为传递值 value与key是不固定的。都是genders集合对象中的变量

对于html:options,还有一种用法

<%

    List colorList = new ArrayList();

    colorList.add(new LabelValueBean("Red", "1");

    colorList.add(new LabelValueBean("Blue", "2");

%>

<html:select property="testProperty">

    <html:options collection="colorList" property="label" labelProperty="value"/>

</html:select>

  html:rewrite  生成一个指向Action的请求地址,自动添加请求后缀与项目名称地址

    <form action="<html:rewrite action='/regUser'/> " method="post">
等价于
<form action="${pageContext.request.contextPath}/regUser.do" method="post">

  html:submit  表单提交按钮

属性指定鼠标上移提示信息,bean:message指定按钮上的文字,都实现了国际化
<html:submit titleKey="info.submit" bundle="message">
<bean:message bundle="message" key="info.submit"/>
</html:submit>

  html:error  错误信息的输出

  

    <html:errors /><br/><!-- 输出全部ActionErrors信息 -->
<html:errors property="username"/><!-- 输出指定key的错误信息,注意这里的key不是资源包中的key -->
其实所谓的输出错误信息,就是从 web 作用域中获取 键 为
public static final String ERROR_KEY = "org.apache.struts.action.ERROR";
的数据

  html:message  输出普通信息

public static final String MESSAGE_KEY = "org.apache.struts.action.ACTION_MESSAGE"; 获取Web作用域中此 键 对应的值

  html:form  生成表单

Action属性值会自动添加项目名与请求后缀

  html:text  表单文本输入域

<html:text property="regUser.username"/>

  html:password  表单密码输入

<html:password property="regUser.password" value=""/>

  html:cancel  取消

<html:cancel>取消</html:cancel>    

  html:checkbox  一个选择框

java:private boolean autoLogin;
jsp:<html:checkbox property="autoLogin">两周内自动登录?</html:checkbox>
注意在ActionForm中使用reset方法将autoLogin初始化为false
之所以要这么做,是因为如果未对复选框进行勾选,默认并不是传递false,而是传递原先的值。这就导致永远为true,所以需要reset为false
如果ActionForm的作用域是request,则可以不reset,因为每次请求都是一个新的FormBean

  html:multibox  复选框

    与checkbox的区别在于,checkbox对应的是JavaBean中的boolean类型,multibox对应的是JavaBean中的String[]类型
一般,如果需要接收的参数是一个布尔值类型,会使用html:checkbox,如果需要接收的参数是一组数据,就会采用html:multibox
<html:multibox property="regUser.specialities"/>
两种复选框标签都有回显功能
一般会使用循环迭代生成一组复选框标签
<c:forEach items="${requestScope.specialities}" var="att">
<html:multibox property="regUser.specialities" value="${att.id}"/>${att.value}
</c:forEach>

  

Struts1之html标签的更多相关文章

  1. struts1使用select标签

    今天使用struts1标签的时候总是出错,后来查了一下,好像不能和什么标签混用.就只用了html原来的标签实现 <select name="newsType_id"> ...

  2. Struts1.3——Struts标签

    1.struts标签的介绍 Struts框架提供了一组非常丰富的框架组件,同时也提供了一组标签库用于和这些组件交互,主要介绍以下三类: html标签 bean标签 logic标签 2.Html标签库 ...

  3. struts1四:常用标签

    struts1支持的5种标签: HTML 标签: 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签: 在访问JavaBeans 及其属性,以及定义一个 ...

  4. Struts1之logic标签

    logic是Struts1中的逻辑标签 <%@ taglib prefix="logic" uri="http://struts.apache.org/tags-l ...

  5. Struts1 的html标签的具体解说与使用

    <html:form> 标签 <html:form>用来创建表单.<html:form>必须包括一个action属性,否则JSP会抛出一个异常. 经常使用的属性有下 ...

  6. Struts1之bean标签

    用于输出 <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %> ...

  7. 小学生之浅谈Struts2与struts1的运行机制

    Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(s ...

  8. struts1配置文件之input

    <action path="/*Person" type="cn.itcast.PersonAction" scope="request&quo ...

  9. Struts2之Struts2的标签库

    前言: Struts2提供了大量的标签 ,用来帮助开发表现层页面,这些表现一方面解决了美观性的需求,因为它们具有html标签一样的外观,另一方面它们解决了功能性的需求, 因为它们具有jsp脚本一样的逻 ...

随机推荐

  1. Java 使用Apache POI读取和写入Excel表格

    1,引入所用的包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxm ...

  2. PC时代 常用搜索引擎高级指令 勿忘

    PC时代,高级指令辅助检索,高效输出既定的需求,被广泛运用于Search Engine. 布局search入口的平台,高级指令都不可或缺.现今,高级指令的高效性,仍然主要体现在搜索引擎检索过程中. i ...

  3. Prime Ring Problem (DFS练习题)

    K - Prime Ring Problem ============================================================================= ...

  4. SKIP(插入空行)

    WRITE 'This is the 1st line'. SKIP. WRITE 'This is the 2nd line'. 跳转至某一行 SKIP TO LINE line_number. 插 ...

  5. python学习之函数基础

    第一个python函数: >>> def func_1(): ... print 'hello python' ... >>> func_1() hello pyt ...

  6. struts2学习笔记一

    一.框架概述 1.框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面. 特点:封装了很多细节,程序员在使用的时候会非常简单. 2 ...

  7. 谷歌面试官经典作品(CTCI)目录

    1.1 判断一个字符串中的字符是否唯一 1.2 字符串翻转 1.3 去除字符串中重复字符 1.8 利用已知函数判断字符串是否为另一字符串的子串 2.1 从链表中移除重复结点 2.2 实现一个算法从一个 ...

  8. P1103 书本整理

    P1103 书本整理 题目描述 Frank是一个非常喜爱整洁的人.他有一大堆书和一个书架,想要把书放在书架上.书架可以放下所有的书,所以Frank首先将书按高度顺序排列在书架上.但是Frank发现,由 ...

  9. itop-4412开发板学习-内核信号量

    1. 翻翻书看下,linux提供两种信号量,内核信号量,由内核控制路径使用,System V IPC信号量,由用户态进程使用.下面的就是内核部分的信号量.内核信号量类似于自旋锁,当锁关闭着时,不允许内 ...

  10. ExtJs工具篇(3)——Aptana Studio3乱码的问题

            在Aptana Studio里面使用,发现输入的中文是乱码,在浏览器中浏览也是乱码,想着肯定是编码的问题,但是一直没有找到在那个地方设置.以为汉化后就可以了,没想到汉化后竟然还是乱码, ...