当前位置: 首页 > article >正文

【Struts2】【Struts2的OGNL表达式】

简介

  1. el表达式${属性}取值顺序:request>>Context>>Root
  2. <s:XX>标签下的action,直接使用action名即可,不需要上下文路径和命名空间.
  3. <s:from>表单具有自动回写功能.

1.通用标签

1. 判断

<s:if test="条件">执行体</s:if>

<!--num存于Context下的request中-->
<% request.setAttribute("num", 100); %><s:if test="#request.num>50">大于50</s:if>
<s:else>小于50</s:else>
2.循环
  • 自行循环(val=索引)
    <s:iterator begin="0" end="10" step="1" var="索引">
<!--循环输出-->
<s:iterator begin="1" end="10" step="2" var="index"><s:property value="#index"/>
</s:iterator><br/>
<!--输出1 3 5 7 9-->
  • 有值的循环(方式2 val=元素)
<% request.setAttribute("arr",new Integer[]{11,22,44,66,77}); %>
<!--方式1-->
<s:iterator begin="0" end="10" step="1" var="index">${arr[index]}
</s:iterator><br/>
<!--方式2-->
<s:iterator value="#request.arr" var="val"><s:property value="#val"/>
</s:iterator>
<!--输出11 22 44 66 77 -->
3.超链接

<s:a action="" namespace="">XXX</s:a>
1. namespace=命名空间
2. action=action名
3. 在超链接中加入<s:param>标签,可以添加参数

<!--访问 域名/上下文路径/myPKG/123.action-->
<s:a action="123" namespace="myPKG">XXX</s:a><!--在网页上输出  XXXmyPKG/123.action -->
<s:url action="123" namespace="myPKG">XXX</s:url><!--添加参数 employee.id,值为Content容器的#employee.id-->
<s:a action="XXX"><s:param name="employee.id" value="#employee.id"/>删除</s:a>

2.表单标签

  • 普通框
隐藏框:   <s:hidden name="XX" value="XX"/>
小文本框: <s:textfield name="XX" value="XX"/>
密码框:   <s:password name="XXX"/>
大文本框: <s:textarea name="xxx"/>
提交框:   <s:submit name="xxx"/>
重置框:   <s:reset name="XXX"/>
  • 单选,复选,下拉
    • headerKey=”null” ;下拉框的默认值
    • headerValue=”请选择”;下拉框的默认视图
    • multiple=”true”;下拉框展开

方式1:传入#{Key:Value, Key:Value} key等价于每个选项的id,value等价于每个选项的文本内容

单选框
<s:radio name="XXX" list="#{'1':'选项1','2':'选项2'}"></s:radio>
复选框
<s:checkboxlist name="XXX" list="#{'1':'选项1','2':'选项2'}"/>
下拉框
<s:select name="XXX" list="#{'1':'选项1','2':'选项2'}"/>

方式2:传入一个list(且list中都是对象)

  • listKey=”id” :表示每个选项的id,是每个对象的id
  • listValue=”name”:表示每个选项的文本,是每个对象的文本

Action类响应发送一个list

        ActionContext ctx = ActionContext.getContext();List<Hobby> list =new ArrayList<>();list.add(new Hobby(1L, "篮球"));list.add(new Hobby(2L, "乒乓球"));list.add(new Hobby(3L, "足球"));list.add(new Hobby(4L, "排球"));ctx.put("list", list);

jsp

单选框
<s:radio name="XXXX" list="#list" listKey="id" listValue="name"/>
复选框
<s:checkboxlist name="XXXX" list="#list" listKey="id" listValue="name"/>
下拉框
<s:select name="XXXX" list="#list" listKey="id" listValue="name"/>

这里写图片描述

3.自动回写功能(将对象存入Root中)

  • Action类中传递对象
    • hobbys,复选框的内容(传入Context)
    • jobs, 下拉框的内容(传入Context)
    • user, 要回写的对象(传入Root)
//全局变量,将user对象传入Rootprivate User user=new User("Armo", 11, new Hobby(1L, "篮球"), "man", new Job(1L, "java"));public User getUser() {return user;}
//方法体//hobbys List<Hobby> hobbys=new ArrayList<>();hobbys.add(new Hobby(1L, "篮球"));hobbys.add(new Hobby(2L, "足球"));//jobsList<Job> jobs=new ArrayList<>();jobs.add(new Job(1L, "java"));jobs.add(new Job(2L, "C++"));//放入ContextActionContext ctx = ActionContext.getContext();ctx.put("jobs", jobs);ctx.put("hobbys", hobbys);

JSP中
name=”属性”

姓名:<s:textfield name="user.name"/></br>
年龄:<s:textfield name="user.age"/>
爱好:<s:checkboxlist name="user.hobby.id" list="#hobbys" listKey="id" listValue="name"/><br/>
性别:<s:radio name="user.sex"  list="#{'man':'男','girl':'女'}" ></s:radio><br/>
工作:<s:select name="user.job.id" list="#jobs" listKey="id" listValue="name"/>

显示结果
这里写图片描述

http://www.lryc.cn/news/2413752.html

相关文章:

  • 手把手教你轻松实现listview下拉刷新
  • 《数字IC设计入门》(1)
  • 菜鸟浅谈对于Adapter及AdapterView的理解
  • CSS进阶之grid网格布局 (三):关于grid布局、grid-container属性、grid-items属性
  • 升级AndrOid4.3,三星S4升级Android 4.3系统后应用停止运行的解决办法图解
  • Ageia的PhsyX遭破 无需物理卡即可开启
  • PHP自学网:自学者的良师益友
  • GOM和GEE引擎黑屏不显示界面,装备地图怪物的解决方法
  • PHP Socket编程指南:从入门到精通
  • VC6.0 工程转到VS2008一些问题的描述及解决方法(附有VS2008发布程序介绍)
  • electron 自动更新之路总结( 下)客户端 autoUpdate
  • Summer——从头开始写一个简易的Spring框架
  • _T 未定义错误
  • Python logging 日志模块及代码示例
  • s5830刷机
  • fifo最小深度的计算
  • 安装flash player debug版本遇到的一些问题
  • JAVA Socket详解
  • 并行计算和并行计算机体系结构
  • [原创]关于老板新建议的两个引擎的介绍
  • 代理IP是否会导致网络连接变慢?
  • 谷歌搜索语法,2024年最新2024-2024字节跳动网络安全面试真题解析
  • Matlab 2010b再次打开安装问题
  • 《Windows核心编程》---剪贴板
  • 塔防中的路径查找
  • 创意绝佳的格子广告网站“1百万像素网”
  • 主流论坛比较
  • C语言经典例程100例
  • 网络史话 因特网简史
  • python:实现网站自动登录(附完整源码)