struts 2的标签库

struts 2的标签非常容易使用,只要在页面中导入 <%@ taglib uri="/struts-tags" prefix="s" %>就可以了,而struts 2标签库根据用途不同可以分为5类:

1、数据标签:主要用于输出值栈中的值,或者将值输入到值栈中。

1.1、<s:action>标签:用于直接在页面调用一个action请求,属性如下:

          id:属性可选,用于作为该action的应用标志id。

          name:属性必选,用于指定该标签调用哪个action。

          namespace:属性可选,指定该标签调用的action所在的namespace。

          executeResult:属性可选,指定是否将action的处理结果页面包含进来,true为包含,false不包含,默认情况下为false。

          ignoreContextParam:属性可选,指定该页面中的请求参数是否需要传入调用的action,false传入,true不传,默认为false。

1.2、<s:property>标签:输出value属性指定的值,属性如下:

          default:属性可选,如果输出的属性值是null,则显示default属性指定的值。

          escape:属性可选,指定是否经过HTML的转义,默认为true。

          value:属性可选,指定需要输出的属性值,如果没有指定则默认输出值栈栈顶的值。

1.3、<s:param>标签:主要用于为其他标签提供参数,属性如下:

          name:属性可选,指定需要设置的参数的参数名。

          value:属性可选,指定需要设置的参数的参数值。使用方式如下:

	第一种方式
	<s:param name="参数名">参数值</s:param>
	<s:param name="people">zhang3</s:param>
	第二种方式
	<s:param name="参数名" value="参数值"/>
	<s:param name="people" value="zhang3"/>
两段代码的意思并不一样,前者是指定一个名为“people”的参数,参数值为“zhang3”字符串。而后者是指定一个名为“people”的参数,参数值为“zhang3”对象的值,如果“zhang3”对象不存在,则“people”参数的值为null,如果想要指定“people”参数的值为“zhang3”字符串,则需要把值加上引号,代码如下:
	<s:param name="people" value="'zhang3'"/>

1.4、<s:bean>标签:用于创建一个JavaBean实例。属性如下:

         name:属性必选,用来指定需要实例化的JavaBean的实现类。

         id:属性可选,指定该属性后,该JavaBean实例会被放入Stack Context中,从而允许直接通过id属性来访问该JavaBean实例。下面给出一部分代码:

Student类,属性name,有setter和getter方法。

package org.user;

public class Student {
private String name;

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}
}

jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
	<s:bean name="org.user.Student" id="stu">
	在bean标签内部可以直接输出:<br>
	<s:param name="name">zhang3</s:param>
	<!-- 还有其他赋值的方式,前面说过了,可以自己编写代码测试一下。 -->
	<s:property value="name"/>
	</s:bean>
	在bean标签外表取值可以利用id:
	<s:property value="#stu.name"/>
  </body>
</html>

1.5、<s:date>标签:用于格式化输出日期,属性如下:
         format:属性可选,指定了该属性后,将根据该属性指定的格式来格式化日期。

         nice:属性可选,用于指定是否输出指定日期和当前日期之间的时差。默认为false,不输出。

         name:属性必选,指定要格式化的日期值。

         id:指定引用该元素的id。

1.6、<s:debug>标签:略过,个人感觉有debug调试。

1.7、<s:set>标签:将某个值放入指定的范围,属性如下:

         id:属性可选,为这个引用的元素赋一个id值。

         name:属性必选,指定重新生成的新变量的名字。

         scope:属性可选,指定新变量存放的位置,该属性有5个值,分别是application、session、request、page、action,该属性默认值是action。

         value:若为未指定该属性,则将值栈栈顶的值赋予新变量。

	<s:set name="java EE" value="'Struts 2教程'"/>
	<s:property value="java"/>

2、控制标签:主要用于控制页面流程。

2.1、<s:if>/<s:elseif>/<s:else>标签:用于分支控制,与if、elseif、else在java中的用法一样。

2.2、<s:iterator>标签:对集合进行迭代,属性如下:

         value:属性可选,指定被迭代的集合,通常由OGNL表达式指定,如果没有指定该属性,则使用值栈栈顶的集合。

         id:属性可选,指定集合元素的id。

         status:属性可选,指定迭代时的IteratorStatus实例,通过该实例可以判断当前迭代元素的属性,该实例包含以下方法:

         int getCount():返回当前迭代了几个元素。

         int getIndex():返回当前迭代元素的索引。

         boolean isEven():返回当前迭代元素的索引元素是否是偶数。

         boolean isOdd():返回当前迭代元素的索引元素是否是奇数。

         boolean isFirst():返回当前迭代元素是否是第一个元素。

         boolean isLast():返回当前迭代元素是否是最后一个元素。部分代码如下:

	<s:iterator value="{'语文','数学','英语','物理'}" id="book" status="st">
	<s:property value="book"/>
	当前迭代索引为:<s:property value="#st.getIndex()"/>
	当前迭代了的元素个数为:<s:property value="#st.getCount()"/><br>
	</s:iterator>

2.3、<s:append>标签与<s:merge>标签:将集合进行拼接,但是二者拼接方式不一样前者的新集合是:集合1、集合2...,后者是:集合1元素1、集合2元素1、集合1元素2、集合2元素2...。属性:id,用来指定拼接之后的新集合的引用id。
一下三者略过,因为稍有基础就能理解运用,如果有需要请在评论处说明,我会更新文章。

3、表单标签:主要用于生成HTML页面的表单元素。

4、非表单标签:主要用于生成页面上的树、Tab页标签等。

5、Ajax标签:主要用于支持Ajax效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值