【Struts2学习笔记】8:Strut2中的控制标签,非表单标签

标签: 控制标签 非表单标签 dojo tag
23人阅读 评论(0) 收藏 举报
分类:

都按书上的例子敲,控制标签只学了分支控制和循环控制,后面的也是只学常见的或者特别的。

这些标签里或多或少会用到Struts2内建的OGNL表达式。

控制标签

分支控制标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
    <%--相当于制定了一个值是68的变量score --%>
    <s:set name="score" value="68"/>
    <s:if test="%{#score<60}">
        不及格
    </s:if>
    <s:elseif test="%{score<80}">
        很秀
    </s:elseif>
    <s:elseif test="%{score<90}">
        陈独秀
    </s:elseif>
    <s:else>
        蒂花之秀
    </s:else>
</body>
</html>

输出:

很秀

iterator标签

用来处理循环,用着一个标签就可以实现while循环或者for循环了,实际上for循环可以完全替代while循环,while循环也可以通过加控制的方式来完全替代for循环。

下面这个例子通过指定status属性来获取每次迭代的对象,然后就能在OGNL表达式里获取到这次是奇数次还是偶数次,对表格的背景颜色进行控制。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
    <table border="1" width="200">
        <%--通过指定status属相相当于制定了循环中的循环变量 --%>
        <s:iterator value="{'LZH','is','SB'}" id="sbLZH" status="lzh">
            <%--这个if放在tr头的里面,用来根据外层奇偶次数控制其style属性的颜色值 --%>
            <tr<s:if test="#lzh.odd"> style="background-color:#def7c2"</s:if>>
                <%--第一列输出迭代器计数 --%>
                <td><s:property value="#lzh.count"/></td>
                <%--第二列输出迭代到的值 --%>
                <td><s:property value="sbLZH"/></td>
            </tr>
        </s:iterator>
    </table>
</body>
</html>

输出:
这里写图片描述

非表单标签

这类标签主要用来输出在Action中封装的消息,还是跟着书上只学两组。

actionerror标签和actionmessage标签

这两个标签可以捕获到跳到本页面的那个Action中的addActionError()addActionMessage()方法在Action实例中封装的信息。

package myAction;

import com.opensymphony.xwork2.ActionSupport;

//注意必须要继承ActionSupport类才有这两个成员方法
public class TestAction extends ActionSupport {

    @Override
    public String execute() throws Exception {
        this.addActionError("封装在Action实例中的Error信息");
        this.addActionMessage("封装在Action实例中的Message信息");
        return SUCCESS;
    }
}
<action name="test" class="myAction.TestAction">
    <result name="success">test.jsp</result>
</action>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
    <%--获取封装在Action中的Error和Message --%>
    <h1><s:actionerror/></h1>
    <h2><s:actionmessage/></h2>
</body>
</html>

输出:
这里写图片描述

tree标签和treenode标签

用来实现树形结构,记得上学期那个ChatCat的好友树就很难弄,但是在这种XML语法下树的结构就非常清晰。

注意这组标签不是struts-tags里面的,而是struts-dojo-tags里面的。需要额外添加这个略大的jar包:
这里写图片描述
并且taglib指令导进来:

<%@taglib prefix="sx" uri="/struts-dojo-tags" %>

还要在HTML的head中打入子标签:

<sx:head parseContent="true"/>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<sx:head parseContent="true"/>
</head>
<body>
    <sx:tree label="上海大学" id="tree1" showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
        <sx:treenode label="商业互吹学院" id="chui">
            <sx:treenode label="15级" id="15chui"/>
            <sx:treenode label="16级" id="16chui"/>
        </sx:treenode>
        <sx:treenode label="互奶学院" id="milk">
            <sx:treenode label="嘉定分院" id="jd">
                <sx:treenode label="17级" id="17jd"/>
                <sx:treenode label="16级" id="16jd"/>
            </sx:treenode>
            <sx:treenode label="宝山总院" id="bs">
                <sx:treenode label="15级" id="15jd"/>
                <sx:treenode label="14级" id="14jd"/>
            </sx:treenode>
        </sx:treenode>
    </sx:tree>
</body>
</html>

输出:
这里写图片描述

查看评论

Struts2中UI标签之非表单标签

1.非表单标签主要用于在页面生成一些非表单的可视化元素,例如Tab页面,输出HTML页面的树形结构等。当然,非表单标签也包含在页面显示Action里封装的信息,非表单标签主要有如下几个: a:生成一个...
  • u012561176
  • u012561176
  • 2015-04-17 22:22:40
  • 960

Struts2 标签库(IBM资料

  • 2012年04月10日 11:05
  • 1.02MB
  • 下载

struts2标签库——UI标签

1、要使用标签,必须修改web.xml,让控制器拦截所有请求 /* 2、Struts 2提供了功能强大的标签库,JSP页面导入标签库: ” 3、设置用户界面主题,默认值为xhtml风格 ...
  • cuifugang124428
  • cuifugang124428
  • 2014-03-14 23:05:26
  • 1671

strut2日期表单回显格式设置

第一个标签用来设置回显日期的格式  然后通过ognl表达式将值   赋值给标签的value属性...
  • zcl1199
  • zcl1199
  • 2016-05-09 20:53:24
  • 529

Struts2标签库(四)之非表单标签

非表单标签主要用于在页面中生成一些非表单的可视化元素,例如Tab页面、输出HTML页面的树形结构等。 1.1 actionerror和actionmessage标签 actionerrror和acti...
  • owen_william
  • owen_william
  • 2016-02-21 15:34:34
  • 370

【Struts2六】ui标签之form标签及数据回显

ui标签:用在jsp页面用于回显数据的标签,这些标签是由框架定义的,用来替代原生的标签! ui标签有: s:checkboxlist list= "#pList" name="pid"  ...
  • damogu_arthur
  • damogu_arthur
  • 2015-07-16 10:22:41
  • 2147

Struts2中UI标签之表单标签介绍

1.在Struts2UI标签的表单标签分为两种:form标签本身和单个表单标签。
  • u012561176
  • u012561176
  • 2015-04-15 22:51:42
  • 2623

Struts2标签库常用标签

Struts2标签库常用标签 基本概述      对于一个MVC框架而言,重点是实现两部分:业务逻辑控制器部分和视图页面部分。Struts2作为一个优秀的MVC框架,也把重点放在了这两部分上。控制...
  • q547550831
  • q547550831
  • 2016-11-24 21:01:18
  • 15962

Struts2中UI标签之表单标签的一个例子

1.最近写了一篇文章,介绍了一下Struts2中UI标签的表单标签,文章地址为:http://blog.csdn.net/u012561176/article/details/44986183 ...
  • u012561176
  • u012561176
  • 2015-04-16 17:51:48
  • 4177

Struts2 表单和非表单标签

学习内容Struts 2表单标签 Struts 2非表单标签能力目标 熟练使用Struts 2表单标签开发表单 熟练使用Struts 2非表单标签 本章简介上一章讲述了ognl和Struts2标签库中...
  • zhangchen124
  • zhangchen124
  • 2017-06-02 08:46:01
  • 916
    个人资料
    持之以恒
    等级:
    访问量: 14万+
    积分: 4738
    排名: 7646
    其它
    快毕业了。