Struts2标签库分类(Struts2标签库类似JSTL标签库):
tag.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> <!-- 导入Struts2标签库 -->
<!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>Insert title here</title>
</head>
<body>
<!-- 双引号中的内容是OGNL表达式 -->
<!-- ----------------遍历标签 iterator--------------------- -->
<s:iterator value="#list" > <!-- #号表示从数据中心ActionContext中获取数据(ONGL表达式) -->
<s:property /><br> <!-- iterator标签没有var属性,默认将遍历出来的对象放入栈顶(Root) -->
</s:iterator>
<!-- ------------------------------------- --><hr>
<s:iterator value="#list" var="obj" > <!-- iterator标签有var属性,会将遍历出来的对象放入ActionContext中 -->
<s:property value="#obj" /><br> <!-- iterator标签有var属性,遍历的对象从ActionContext中获取 -->
</s:iterator>
<!-- ------------------------------------- --><hr>
<s:iterator begin="1" end="100" step="1" > <!-- 包括1,也包括100 -->
<s:property />|
</s:iterator>
<!-- ------------------if else elseif------------------- --><hr>
<s:if test="#list.size()==4">
list长度为4!
</s:if>
<s:elseif test="#list.size()==3">
list长度为3!
</s:elseif>
<s:else>
list不3不4!
</s:else>
<!-- ------------------property 配合ognl表达式页面取值 (和EL表达式作用相同) ------------------- --><hr>
<s:property value="#list.size()" />
<s:property value="#session.user.name" /> <!-- 如果值为NULL,则不会显示 -->
<!-- ------------------------debug------------------------------ -->
<s:debug></s:debug> <!-- 调试,查看ValueStack(OGNLContext)中的内容 -->
</body>
</html>
src/struts.xml(Struts2的配置文件):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="tag" namespace="/" extends="struts-default" >
<action name="Demo1Action" class="cn.xxx.tag.Demo1Action" method="execute" >
<result name="success" type="dispatcher" >/tag.jsp</result>
</action>
</package>
</struts>
Demo1Action.java:
package cn.xxx.tag;
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Demo1Action extends ActionSupport {
public String execute() throws Exception {
List<String> list = new ArrayList<String>();
list.add("tom");
list.add("jerry");
list.add("jack");
list.add("rose");
list.add("zhangSan");
ActionContext.getContext().put("list", list);
return SUCCESS;
}
}