首先定义标签
一、通用标签
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>