Struts2 标签

一 Struts标签的简介:

  Struts2 自己封装了一套标签,比 JSTL 强大,而且与 Struts2 中的其他功能无缝结合。 当然 Strust2 标签的内容很多,随着版本的升级,标签和属性越来越多。我们要掌握好核心标签及了解其他标签; 根据功能可以分为:数据标签,控制标签,界面标签,其他标签;(其实如果学过标准标签库stl基本上这部分内容简单的一批)

二 Struts2 数据标签

Property 标签:输出 OGNL 表达式的值; 取值

 <% request.setAttribute("name","<font color='red' >张三</font>"); %>
<body>
<h1>property</h1>
<s:property value="#request.name"/><br/>
<s:property value="#request.name2" default="某某"/><br/>
<s:property value="#request.name" escapeHtml="false"/><br/>
</body>

Set 标签:设置变量;

 <h1>set标签</h1>
<s:set var="i" value="1"/><br/>
i= <s:property value="#i"/><br/>
<s:set var="a" value="'action的值类似于值栈(value-stack)'" scope="action"></s:set>
<s:set var="p" value="'page的值'" scope="page"></s:set>
<s:set var="re" value="'request值'" scope="request"></s:set>
<s:set var="se" value="'session值'" scope="session"></s:set>
<s:set var="app" value="'application值'" scope="application"></s:set>
action:<s:property value="#a"/><br/>
page:<s:property value="#attr.p"/><br/>
request:<s:property value="#request.re"/><br/>
session:<s:property value="#session.se"/><br/>
application:<s:property value="#application.app"/><br/>

Bean 标签:定义 javaBean 对象;

 <h1>bean标签</h1>
<s:bean name="com.java1234.model.Student" var="student">
<s:param name="name" value="'张三'"></s:param>
<s:param name="age" value="18"></s:param>
</s:bean>
name:<s:property value="#student.name"/><br/>
age:<s:property value="#student.age"/><br/>

Date 标签:日期标签;

 <%  request.setAttribute("date", new Date());  %>
<body>
<h1>Date标签</h1>
日期:&nbsp;&nbsp; ${date }<br/>
日期:&nbsp;&nbsp; <s:date name="#request.date" format="yyyy-MM-dd"/>
</body>

Debug 标签:调试标签;

 <h1>Debug标签</h1>
<s:debug></s:debug>

Url&a 标签:超链接标签;

 <s:a action="hello" namespace="/forgroud" >

 <s:param name="name" value="'struts2'"></s:param>

 链接a

 </s:a>

Include 标签:动态包含标签;

 <s:include value="head.html"></s:include>

三 Struts2 控制标签

Ifelse 标签:条件判断标签;

 <% int age=11;   request.setAttribute("age", age);    %>
<body>
<h1>if else标签</h1>
年龄:<s:property value="#request.age"/>
<s:if test="#request.age<18">
小于18岁
</s:if>
<s:elseif test="#request.age<30">
大于18岁 小于30岁
</s:elseif>
<s:else>
大于30岁
</s:else>
</body>

Iterator 标签:遍历标签;

 <%
List<Student>studentList=new ArrayList<Student>();
studentList.add(new Student(1,"张三",18));
studentList.add(new Student(2,"李四",19));
studentList.add(new Student(5,"王五",25));
request.setAttribute("studentList", studentList);
%>
<body>
<h1>iterator</h1>
<table border="1">
<tr>
<th>序号</th>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<s:iterator value="#request.studentList" var="sl" status="status">
<tr>
<td><s:property value="#status.index+1"/></td>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:property value="age"/></td>
</tr>
</s:iterator>
</table>
</body>

Append 标签:叠加标签;

 <%
List<Student>studentList=new ArrayList<Student>();
List<Student>studentList1=new ArrayList<Student>();
studentList.add(new Student(1,"张三",18));
studentList.add(new Student(2,"李四",19));
studentList.add(new Student(5,"王五",25));
studentList1.add(new Student(6,"赵六",27));
studentList1.add(new Student(7,"小七",28));
request.setAttribute("studentList", studentList);
request.setAttribute("studentList1", studentList1);
%>
<body>
<s:append var="studentList2">
<s:param value="#request.studentList"></s:param>
<s:param value="#request.studentList1"></s:param>
</s:append>
<h1>iterator</h1>
<table border="1">
<tr>
<th>序号</th>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<s:iterator value="#request.studentList2" var="sl" status="status">
<tr>
<td><s:property value="#status.index+1"/></td>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:property value="age"/></td>
</tr>
</s:iterator>
</table>
</body>

Generator 标签:分隔标签;

 <s:generator separator="," val="'张三,李四,王五'" var="nameList"></s:generator>
  <s:iterator value="#nameList">
<s:property/>
</s:iterator>

Merge 标签:组合标签;

Sort 标签:排序标签;我们使用一个简单的例子学习一下:

Model:Student类:

 public class Student {
private String name;
private int id;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student( int id, String name,int age) {
super();
this.name = name;
this.id = id;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

排序类:com.java1234.compator.MyComparator代码:

  public class MyComparator  implements Comparator<Student>{
public int compare(Student s1,Student s2){
if(s1.getAge()>s2.getAge()){
return 1;
}else if(s1.getAge()<s2.getAge()){
return -1;
}else{
return 0;
}
}
 <%
List<Student>studentList=new ArrayList<Student>();
studentList.add(new Student(1,"张三",18));
studentList.add(new Student(2,"李四",19));
studentList.add(new Student(5,"王五",25));
studentList.add(new Student(6,"王五",17));
studentList.add(new Student(7,"王五",19));
request.setAttribute("studentList", studentList);
%>
<body>
<h1>iterator</h1>
<s:bean id="Mycomparator" name="com.java1234.compator.MyComparator"></s:bean>
<table border="1">
<tr>
<th>序号</th>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<s:sort comparator="#Mycomparator" source="#request.studentList">
<s:iterator status="status">
<tr>
<td><s:property value="#status.index+1"/></td>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:property value="age"/></td>
</tr>
</s:iterator>
</s:sort>
</table>

Subset 标签:截取标签;

 <%
List<Student>studentList=new ArrayList<Student>();
studentList.add(new Student(1,"张三",18));
studentList.add(new Student(2,"李四",19));
studentList.add(new Student(5,"王五",25));
studentList.add(new Student(6,"赵六",28));
request.setAttribute("studentList", studentList);
%>
<body>
<h1>subset</h1>
<table border="1">
<tr>
<th>序号</th>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<s:subset source="#request.studentList" start="2" count="2">
<s:iterator status="status">
<tr>
<td><s:property value="#status.index+1"/></td>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:property value="age"/></td>
</tr>
</s:iterator>
</s:subset>
</table>
</body>

四 Strut2 界面标签

Form 标签:表单提交标签;

 <s:form method="post" action="hello" namespace="/forgroud">提交内容</s:form> 

Text 标签:文本标签;

 用户名:<s:textfield name="name"></s:textfield>
密码:<s:password name="password"></s:password>
备注:<s:textarea name="desc"></s:textarea>

Radios 标签:单选标签;

 性别单选框: <s:radio list="#{0:'男',1:'女' }" name="sex" value="0"></s:radio>

Checkboxlist 标签:复选框标签;

 <s:checkboxlist list="#{0:'唱歌',1:'跳舞',2:'篮球' }"name="hobby" value="1"></s:checkboxlist>

Select 标签:下拉框标签;

 下拉框: <s:select list="#{0:'跳舞',1:'篮球',2:'唱歌' }" name="bobby" value="0"></s:select>

Struts2的标签三大类是什么?的更多相关文章

  1. Struts2+Spring+Hibernate 三大框架的合并集成

    这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样.  首先看一 ...

  2. Struts2之Struts2的标签库

    前言: Struts2提供了大量的标签 ,用来帮助开发表现层页面,这些表现一方面解决了美观性的需求,因为它们具有html标签一样的外观,另一方面它们解决了功能性的需求, 因为它们具有jsp脚本一样的逻 ...

  3. 【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】

    一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的 ...

  4. Struts2常用标签

    Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的 ...

  5. Struts2的标签库(五)——表单标签

    Struts2的标签库(五) --表单标签 几个特殊的表单标签的使用: 1.checkboxlist标签 该标签用于创建多个复选框,用于同时生成多个<input type="check ...

  6. Struts2的标签库(四)——数据标签

    Struts2的标签库(四) --数据标签 1.action标签 该标签用于在jsp页面直接调用一个Action,通过指定executeResult参数,还可以将Action的处理结果包含到此页面中来 ...

  7. Struts2的标签库(三)——控制标签

    Struts2的标签库(三) --控制标签 1.if/elseif/else标签 用于分支控制,取代JSP中的if语句,根据一个boolean(test属性的值)值判断是否进行下一步运算或者输出等. ...

  8. Struts2的标签库(一)——使用Struts2的标签库

    Struts2的标签库(一) --使用Struts2的标签库 1.Struts2的标签库其实就是一个自定义的标签库,所以它也有它的标签处理类和标签库定义文件: 2.和所有自定义标签一样,我们可以找到S ...

  9. JavaWeb框架_Struts2_(五)----->Struts2的标签库

    1.  Struts2的标签库 1.1 Struts2标签库概述 Struts2的标签库可以分为以下3类:用户界面标签.非用户界面标签.AJAX标签; 2.1.1 Struts2标签库的分类和使用 1 ...

随机推荐

  1. 解决VS2013无法安装ArcObjects10.2的问题

    之前在网上看到的10.1在vs2012安装不上的问题,解决办法是改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\1 ...

  2. objdump命令

    0x00 objdump命令是Linux下的反汇编目标文件或者可执行文件的命令 0x01 objdump -f   显示test的文件头信息 $ objdump -f levellevel: file ...

  3. js之数组知识

    一.数组的定义(来源于Array.prototype) 1.构造函数方法: (1)var arr = new Array();//没有参数等价于 var arr = []; (2)var arr = ...

  4. (转)automaticallyAdjustsScrollViewInsets(个人认为iOS7中略坑爹的属性)

    转自http://m.blog.csdn.net/blog/humingtao2013/27662093 automaticallyAdjustsScrollViewInsets(个人认为iOS7中略 ...

  5. (原)剑指offer之旋转数组

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...

  6. S3C6410串口平台设备注册流程分析

    1.mdesc->map_io() start_kernel -->setup_arch(&command_line); -->paging_init(mdesc); --& ...

  7. Cocos2d-x学习资料集锦

    Cocos2d-x学习资料集锦: 1.Cocos2d-x官方中文文档:https://github.com/chukong/cocos-docs/blob/master/catalog/zh.md 推 ...

  8. nw335 debian sid x86-64 --3 linux内核自带

    nw335 debian sid x86-64 --3  linux内核自带

  9. 【MySQL】浅谈 varchar(N)

    一  前言  varchar(N) N代表什么意思,能存放多少个中文字符?属于老生常谈的问题了,今天又被一个开发同事问我关于这个问题,索性写一篇文章来具体介绍一下.二 理论知识 先说明一下 MySQL ...

  10. CSS布局基础--BFC

    1,什么是BFC BFC(Block Formatting Context)块级格式化上下文,它就是一个环境,HTML元素在这个环境中按照一定规则进行布局.一个环境中的元素不会影响到其他环境中的布局. ...