Struts2标签

struts2标签大致分类

在struts2中有一套比较完备的标签体系,它既包含了想JSTL那样的控制标签,还包含了像HTML那样的表单标签,下面对struts2的标签进行一个简单的分类

  • 普通标签
    • 控制标签
      • iterator
      • if
      • elseif
      • else
    • 数据标签
      • property
  • UI标签
    • 表单标签
      • form
      • textfield
      • password
      • select
      • file
      • checkboxlist
      • radio
      • submit
    • 非表单标签
      • actionerror

在struts2的标签中大致就分为以上几类

struts2各大标签介绍

上面对标签进行了分类,下面就对这些标签进行单独介绍

普通标签

控制标签

首先在Action类中准备好一个List集合放到ActionContext中

import java.util.ArrayList;
import java.util.List;
 
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
 
public class Demo2Action extends ActionSupport {
     
 
 
     
    public String execute() throws Exception {
         
        List<String> list = new ArrayList<>();
        list.add("tom");
        list.add("jerry");
        list.add("jack");
        list.add("rose");
        list.add("lc");
        ActionContext.getContext().put("list", list);
         
        return SUCCESS;
    }
     
 
}
View Code

当然还得在jsp页面使用taglib引入一下

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

iterator

iterator是一个进行迭代的标签,就像for循环那样

<s:iterator value="#list">
    <s:property />        
</s:iterator>

      
<!-- name表示当前的值 -->
<s:iterator value="#list" var="name">
    <s:property value="#name" />          <!-- property里面可以什么都不写,也可以写上name,都能找到当前循环的值 -->
</s:iterator>

      
<!-- 从1循环到100 -->
<s:iterator begin="1" end="100" step="1">
    <s:property />
</s:iterator>

if

if标签是进行判断用的

<s:if test="#list.size() == 4">   <!-- 在test里面进行判断 -->
    list的长度是4
</s:if>

elseif

else if也是进行判断的,当if中的条件或者上一个elseif中的条件不满足时就会进来这个elseif进行判断

<s:if test="#list.size() == 4">
    list的长度是4
</s:if>
<elseif test="#list.size() == 3">
    list的长度是3
</elseif>

else

当上面所有的条件都不满足时就会进行else

<s:if test="#list.size() == 4">
    list的长度是4
</s:if>
<elseif test="#list.size() == 3">
    list的长度是3
</elseif>
<else>
    list的长度既不是3也不是4
</else>

数据标签

数据标签只有一个,而且在上面已经用过,它就是property

property

凡是能用到el标签的地方都可以用property代替

<s:property value="#list.size()" />

UI标签

表单标签

Struts2也准备了一套类似于HTML中的表单标签,struts2的标签相对于HTML的有两个好处,一个是内置了一套样式,还有就是能够根据栈中的属性自动回显,不用担心表单提交后页面刷新将数据都弄没了。当然,struts2表单标签内置的样式不会好看到那里去,因此,如果不喜欢可以去掉,只需要在form表单里面指定theme属性即可,有两种选择,一种是xhtml有样式,也是默认的选项,另外一种是simple没有样式

下面列一个大表单进行介绍

<s:form action="Demo2Action02" namespace="/" theme="xhtml">

	<s:textfield name="name" label="用户名" ></s:textfield>
	<s:password name="passworld" label="密码"></s:password>

        <!-- 在radio中,如果传入list,那么value中的值会和显示的值一样 -->
	<s:radio list="{'男','女'}" name="gender" label="性别" ></s:radio>
        <!-- 如果需要显示男女,而value里面是0跟1,那么就应该用map来指定 -->
	<s:radio list="#{1:'男',0:'女'}" name="gender" label="性别" ></s:radio>
	
	<s:checkboxlist list="#{2:'抽烟',1:'喝酒',0:'撩妹'}" name="habits" label="爱好"></s:checkboxlist>
	
	<s:select list="#{2:'大专',1:'本科',0:'硕士'}" headerKey="" headerValue="---请选择---" name="edu" label="学历"></s:select>
	
	<s:file name="photo" label="艳照"></s:file>
	<s:textarea name="desc" label="个人简介"></s:textarea>
	
	<s:submit value="提交"></s:submit>
</s:form>

非表单标签

非表单标签只有一个,就是actionerror标签,使用来显示action中产生的错误信息的

首先在Action类中使用 this.addActionError() 应该写入错误信息

public class DemoAction extends ActionSupport{
    public String execute() throws Exception{
        this.addActionError("错误啦!!");
        return SUCCESS;
    }
}

然后在jsp页面进行显示

<s:actionerror />

 

posted @ 2018-08-13 10:26  Jin同学  阅读(99)  评论(0)    收藏  举报