struts2标签库主要包括一些html标签,一些控制标签
下面我将我用到的struts2标签列出来以供参考
首先,声明标签库的使用:
<%@ taglib prefix="s" uri="/struts-tags" %>
一些常用标签:
<s:property />标签。 它有一个value属性,用于取得在request中的变量,其底层实现也是request.getParameter(). value属性对应的是在request、中变量名
<s:actionerror />标签。它取读actionerror中的内容它有一个cssStyle属性,用于设置actionerror的样式
<s:fielderror />标签。它取读fielderror中的内容。它有一个cssStyle属性,用于设置actionerror的样式
一些html标签的封装
<s:form/>标签,表示html页面中的表单,<s:form/>中的默认method为post而不是html中的get。该标签还有一个theme属性,就是如果使用的struts、标签生成表单,格式有点固定,不是很方便。如果在<s:form>标签中的theme的属性设置为simple,则<s:form>中的子标签变成了类似一般html标签的效果 如果在<s:form>设置的theme=“simple”不会自动展示一边fielderror中的信息
<s:textfield />标签,表示<input type="text" />. 该标签中有一个label属性,属性内容表示输入框前面的值,例如 username:<input type="text"/>它就代表前面的username
<s:password />
<s:submit />等等
课外: html表单中的label标签的用法
<form name="regist" action="" method="post">
<label for="regist_username" class="label">username:</label>
<input type="text" name="username" />
</form>
作用:点击label标签的内容进入input输入框里面。用法就是<label/>标签中for属性写格式为表单名_控件名
引用:<%@ taglib prefix="s" uri="/struts-tags" %>
数据标签的应用:
property标签:作用获取数据值,并将数据值直接输出到页面中
属性: default 默认值,可选 escapeJavaScript 可选 escape 可选 value 可选
demo: <s:property value="username"/>
set标签:
set标签用于定义一个变量,通过该标签可为所定义的变量赋值以及设置变量的作用域(application、session、request)。在默认情况下通过set标签定义的变量被放置在值栈中。
属性:
scope 可选 String 设置作用域,它的值可以试application、request、session、page或者是action,其默认值为action
value 可选 String 设置变量的值
var 可选 String 定义变量的名称
demo:<s:set var="username" value="测试" scope="request"/><s:property value="#request.username"/>
a标签
a标签用于构建一个超链接,其最终的构建结果将形成一个HTML中的超链接
属性
action 可选 String 将超链接的地址指向action
href 可选 String 超链接地址
id 可选 String 设置HTML中的属性名称
method 可选 String 如果超链接的地址指向action,method同时可以为action声明所调用的方法
namespace 可选 String 如果超链接的地址指向action,namespace可以为action声明命名空间
demo:<a action="login.action" id="log" namespace="/" method="add()"></a>
param标签
param标签主要用于对参数赋值,它可以当成其他标签的子标签。
属性:
name 可选 String 设置参数名称
value 可选 Object 设置参数值
action标签
action标签是一个非常有用的标签,用于执行一个action请求。当在一个JSP页面中通过Action标签执行action请求时,可以将Action返回结果输出到当前页面中,也可以不输出。
属性:
executeResult 可选 String 是否使Action返回到执行结果,默认为false
flush 可选 Boolean 输出结果是否刷新,默认为true
ignoreContextParams 可选 是否将页面请求参数传入被调用的Action,默认值为false
name 必选 String Action对象映射的名称,也就是struts.xml中配置映射的名称
namespace 可选 String 指定名称的命名空间
var 可选 String 引用此action的名称
push标签
push标签用于将对象或值压入到值栈中并防止到顶部。因为值栈中的对象是可以直接调用的,所以push标签起到一定简化操作的作用
demo:<s:push value="#request.student"/>
date标签
date标签用于格式化日期时间,可以通过制定的格式化样式对时间值进行格式化。
属性:
format 可选 String 设置格式化日期的样式
name 必选 String 日期值
nice 可选 Boolean 是否输出给定日期与当前日期之间的时差,默认值为false
var 可选 String 格式化时间的名称变量,通过该变量可对其进行引用
demo:<s:date var="mydate" name="<%=(new Date()).getTime().toString()%> format="MM:DD:HH""
include标签
类似于JSP中的include动作标签,可以再目标页面中通过param标签传递请求参数
include标签的属性:
value:被包含页面的地址,字符串类型,如果是OGNL表达式,则要使用以下形式:%{OGNL表达式};
包含中文的文件时,必须统一页面的编码,并在struts.xml中配置以下代码:
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
demo:<s:include value="%{#request.name}"><s:param name="un" value="nice to meet you"/></s:include>
JSP中
<jsp:include page=""/>
<%@ include file=""/>
url标签
在Struts2框架中,一个Action对象的URL映射地址包涵命名空间,调用方法等多个属性。这样的url可以直接进行编写,也可以使用Struts2的url标签自动生成URL地址,然后调用它
属性
action 可选 String Action对象的映射URL,也就是Action对象的访问地址
anchor 可选 String 此url的锚点
encode 可选 Boolean 是否对参数进行编码,默认值为true
escapeAmp 可选 String 是否将“&”转移成为“&”
forceAddSchemeHostAndPort 可选 Boolean 是否添加URL的主机地址及端口号,默认值为false
includeContext 可选 Boolean 生成的URL是否包含上下文路径,它的默认值为true
includeParams 可选 String 是否包含可选参数,可选值为none、get、all。默认为none
method 可选 String 制定请求Action对象所调用的方法
namespace 可选 String 指定请求action映射地址的命名空间
scheme 可选 String 指定生成URL所使用的协议
value 可选 String 指定生成URL的地址
var 可选 String 指定生成URL变量名称,可以通过此名称引用URL
控制表标签的应用:
if标签
<s:if/> <s:elseif/> <else/> 跟java的if标签使用基本一致
<sif test="" > ..... </s:if> <s:elseif test=""> ... </s:elseif> <s:else> .... </s:else>
iterator标签
遍历集合类中的部分或者所有数据
属性:
begin 可选 Integer 指定迭代器的起始位置,默认为0
end 可选 Integer 指定迭代器的终止位置,默认为集合或者数组的长度
status 可选 String 迭代过程中的状态
step 可选 Integer 设置迭代的步长,每一次迭代后在原2索引值后面加step,它的默认值为1
value 可选 String 指定迭代的集合或者数组对象
var 可选 String 设置迭代元素的变量,如果指定此属性,那么迭代的变量将压入值栈中
在iterator标签的属性中,status属性用于获取过程中的状态信息。在Struts2的内部结构中,struts属性实际上是获取了Struts2封装的一个迭代状态的对象,该对象为org.apache.struts2.views.jsp.IteratorStatus,通过该对象可以获取迭代过程中的以下信息:
假设status=“st"
元素数
IteratorStatus 的getCount()方法获取迭代集合或者数组的元素数。st.count可以获取元素数
是否为第一个元素
Iterator对象提供了isFirst(),来判断当前元素是否为第一个元素。st.first判断当前元素是否是第一个元素
是否为最后一个元素
isLast()方法 st.last
当前索引值
getIndex()方法 st.index
索引值是否为偶数
isEven()方法 st.even索引值是否为奇数
isOdd()方法 st.odd
表单标签