Struts2标签

 

 

 首先定义标签

 

 

 

一、通用标签

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标签内部,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<%@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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<%@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>

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ 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>

  回显页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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>

  

 

posted @   琢磨先生  阅读(132)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
AmazingCounters.com
点击右上角即可分享
微信分享提示