首先定义标签
一、通用标签
1.url
value=“URL”
var=“压入Map栈的key”
action="action请求名"
2.param
把参数和参数值传给父标签,一般不能单独使用,要被其他标签包含
属性
name="key参数名 "
value="参数值"
参数值会进行OGNL解析,
①不以#开头在对象中查找和参数值匹配的属性值
②以#开头从Map栈中找
不被解析
参数值不符合命名规范:
纯数字
把参数值使用单引号引起来
3.set
向Map栈的指定范围内压入键值对
属性:name=“key名”,value=“值”
要经过OGNL解析
scope="作用范围"
定义作用域
4.push
push
向对象站临时压入对象,标签结束后就弹出
属性
value=“对象”
通过OGNL解析获取对象
注意:测试内容要在push标签内部,
<%@page import="java.util.Date"%>
<%@ 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>index</title>
</head>
<body>
<%
session.setAttribute("tom", "aaaa");
session.setAttribute("date",new Date());
%>
测试通用标签:<br>
1. url标签<br>
<s:url value="/test.jsp" var="testurl">
<s:param name="key1" value="#session.tom"></s:param><!-- 访问Map栈 -->
</s:url>
<br><br>
2. set 标签<br>
<s:set name="key2" value="'bbb'" scope="session"></s:set>
<br><br>
3.push标签<br>
<s:push value="#session.date">
年=${year }
</s:push>
<br>
<br><br>
<s:debug></s:debug>
</body>
</html>
二、表单标签
特点;
自动排版和布局
使用table
支持自动回显
自动从对象栈的Action对象中查找对应的属性并显示属性值
共同属性:
name=“属性名”
和Action类的属性进行匹配
lable="说明"
自动在结尾加:,显示在前面的表格单元中
点击lable文字,对用的组件自动获得焦点
value ="显示的值"
1.s:from
action=“url”
medoth="get/post"
2.s:textfield文本框
3.s:password
4.s:hidden
5.s:radio单选框
list=''数据集合"
从值栈获取
6.s:checkboxlist多选按钮
7.s:select下拉选择框
8.textarea多行文本域
cols 列数
rows行数
9.checkbox
默认代表boolean值
选中=true
不选中=false
实现方式
自动添加对应的隐藏域
fieldValue:自定义的选中值
10.s:submit
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ 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>
表单标签<br><br>
<%
Map<String,String> ms = new HashMap<String,String>();
ms.put("1", "乒乓球");
ms.put("2", "网球");
ms.put("3", "排球");
ms.put("4", "羽毛球");
ms.put("5", "篮球");
request.setAttribute("ms", ms);
%>>
<s:form action="testfrom" method="post">
<s:textfield name="userID" label="ID" value="请输入ID"></s:textfield>
<s:textfield name="userName" label="用户名"></s:textfield>
<s:password name="password" label="密码" ></s:password>
<s:hidden name="testhidden" label="隐藏域的内容"></s:hidden>
<s:radio name="sex" list="#{'1':'男','2':'女'}" label="性别"></s:radio>
<s:checkboxlist list="#{'1':'篮球','2':'足球'}" name="sport" label="运动项目1"></s:checkboxlist>
<s:checkboxlist list="#request.ms" name="sport" label="运动项目2"></s:checkboxlist>
<s:set name="sop" value="#request.ms"></s:set>
<s:select headerValue="3" list="#sop" name="aaa" label="运动项目3"></s:select>
<s:textarea name="testarea" label="个人说明" cols="20" rows="10"></s:textarea>
<s:checkbox name="admin" label="管理员" fieldValue="hh"></s:checkbox>
<s:submit value="提交" type="submit" align="center"></s:submit>
</s:form>
</body>
</html>
<%@ 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>Insert title here</title>
</head>
<body>
表单回显<br><br>
<s:form action="testfrom" method="post">
<s:textfield name="userID" label="回显ID"></s:textfield>
<s:textfield name="userName" label="回显用户名"></s:textfield>
<s:password name="password" label="回显密码" showPassword="true"></s:password>
<s:checkbox name="admin" label="回显管理员"></s:checkbox>
</s:form>
<br><br>
<s:debug></s:debug>
</body>
</html>
回显页面
<?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>
<!-- 覆盖默认的过滤的扩展名-->
<constant name="struts.action.extension" value="do,action,,"></constant>
<!-- 启用动态调用
<constant name=""></constant>-->
<!-- 允许调用静态方法和静态属性 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<!-- 定义包 -->
<package name="text" extends="struts-default" >
<action name="testfrom" class="com.hanqi.action.TestFromAction">
<result>view.jsp</result>
</action>
</package>
</struts>