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. deepin15.7下使用apt安装mysql5.7不显示root密码设置的解决方法

    在安装MySQL的过程中,并没有要求设置root账户密码的步骤,导致很多人无法使用root账户登录 这个问题早已有解决方案,笔者在deepin15.7下安装也遇到同样问题,只是做一个简单的记录 解决思 ...

  2. Modify the apache2 default document and home page on ubuntu (ubuntu下修改apache2默认目录和默认主页)

    Change the apache2 default website directory As we know, The apache2 default directory at /var/www/, ...

  3. XSS 和 CSRF简述及预防措施

    在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式.本文将会简单介绍 XSS 和 CSRF 的攻防问题. 1. xss XSS,即 Cross Site Script,中译是跨站脚本攻击 ...

  4. 前端pc版的简单适配

    我们都知道对于前端pc版本的适配是一个难题,大部分都是做的媒体查询.但是有时间公司不要媒体查询 就是需要不管多大的屏幕都是满屏显示.我就在考虑为啥不用rem给pc端做个适配. 我是基于设计图是1920 ...

  5. TP3.2.3 接入阿里sms 短信接口

    阿里云短信接口 配置文件 config.php //阿里大鱼 'Ali_SMS' =>array( 'sms_temp' =>'短信模板', 'sms_sign' =>'签名', ' ...

  6. Spark-源码-Spark-StartAll Master Worler启动流程

    Spark start-all>> """Master启动流程""" Master类 class Master( host: S ...

  7. 完全数--Python

    如果一个数恰好等于它的因子之和,则称该数为“完全数” [1]  .各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect num ...

  8. Go语言的标准net库使用

    Go语言的标准net库使用 与大多数语言一样,Go的标准库是很全的,因为Go的出现本来就是为了网络通信的高并发实现,所以其相关的网络库封装得很简洁,也更加的易读.这里对使用到的api进行记录. net ...

  9. (数据科学学习手札06)Python在数据框操作上的总结(初级篇)

    数据框(Dataframe)作为一种十分标准的数据结构,是数据分析中最常用的数据结构,在Python和R中各有对数据框的不同定义和操作. Python 本文涉及Python数据框,为了更好的视觉效果, ...

  10. LeetCode:27. Remove Element(Easy)

    1. 原题链接 https://leetcode.com/problems/remove-element/description/ 2. 题目要求 给定一个整数数组 nums[ ] 和一个整数 val ...