Struts1之html标签

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等

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

</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>

  

时间: 2024-07-30 10:19:17

Struts1之html标签的相关文章

struts1四:常用标签

struts1支持的5种标签: HTML 标签: 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签: 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> Logic 标签: 管理条件产生的输出和对象集产生的循环 <%@ taglib uri=&qu

Struts1之logic标签

logic是Struts1中的逻辑标签 <%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %> logic:forward 请求跳转 Struts中的配置 <struts-config> <!-- 全局跳转 --> <global-forwards> <!--输入项目名后直接通过index.jsp中的logic:forward跳

Struts1 的html标签的详细讲解与使用

<html:form> 标签 <html:form>用来创建表单.<html:form>必须包含一个action属性,否则JSP会抛出一个异常. 常用的属性有以下几个: action:指定用户提交的组件由那个组件方法来处理 method:指定表单提交的方式是post还是get style:指定CSS样式 styleClass:指定附加到该标签上的CSS样式表名称 target:指定表单被提交至的目标框架或窗口 <html:text> 标签 <html:

Struts1之bean标签

用于输出 <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %> bean:message 输出国际化资源包中的信息 <message-resources parameter="org.zln.struts.resource.message" key="message"/><!-- Struts中配置多个资源文件需要

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

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

struts1配置文件之input

<action path="/*Person" type="cn.itcast.PersonAction" scope="request" input="/{1}.jsp" parameter="method"> <forward name="list" path="/WEB-INF/pages/list.jsp"/> </action&

【SSH2(实践篇)】--Struts2拦截器精解

上篇博客对Struts2的体系结构做了初步的了解,Struts2是以WebWork作为处理核心,并采用拦截器的机制来处理用户的请求,同时它还集成了Struts1丰富的标签库.另外上篇博客还对Struts2的配置使用进行了初步的介绍,下面将会集中讨论Struts2的拦截器. 一.拦截器 1.拦截器小介 拦截器的功能类似于web.xml文件中的Filter,能对用户的请求进行拦截,通过拦截用户的请求来实现对页面的控制.拦截器是在Struts-core-2.2.3.jar中进行配置的,原始的拦截器是在

Struts2.x教程(三) Struts2拦截器

一.Struts2拦截器介绍 Struts2拦截器是使用AOP实现的,主要是针对action对象进行拦截,可以在访问action的某个方法.字段之前或之后实施拦截. 可以为action配置多个拦截器,Struts2会将这一组拦截器按照一定顺序组织成一个拦截器栈.action可以直接引用某个拦截器栈来实现配置多个拦截器的目的. 对于继承struts_default的package中的action,都会默认引用name=defaultStack的拦截器栈(在struts_default中定义了Str

struts1标签之&lt;logic:iterate&gt;

<logic:iterate>主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1. java对象的数组 2. ArrayList.Vector.HashMap等 具体用法请参考struts文档,这里不作详细介绍 现在定义一个class,User.java 把它编译成User.class package example; import java.io.Serializable; public final class User implements Serializable { priv