ognl表达式,有点像el表达式,用到struts标签中,不要用在普通标签和其它的地方
如果是${stu.sid}--->#stu.sid
如要是${requestScope.stu.sid}--->#request.stu.sid
${sessionScope.stu.sname}--->#session.stu.sname
实在不晓得是哪个用途域 #{attr.stu.sid} 会依次查找
还有一个作用:
#{'aa','bbb','ccc'} 构造一个数组
#{1:'男',0:'女'} 构造一个map
三.两大块(struts自带的,ajax要用到的dojo标签(要导插件jar)
1. 导入标签(像c标签一样,有两个)
2. 常见的有
<s:form> 表单
<s:textfield> 文本框
<s:password> 密码框
<s:select> 列表框
<s:radio> 单选框
<s:checkboxlist> 复选框列表
<s:checkbox> 复选框
<s:submit>
<d:datetimepicker> 选日子
3. <s:iterator value="" var=""> 像<c:forEach> value相当items
共同的属性 name,value,label
注意了 : action 中保存值的地方大可分为两个: 一个是 值栈 另一个是ActionContext中。
放在值栈中的值可在jsp页面直接调用如:<s:property value="name1"/> 无需加作用域点
放在ActionContext中的用#号取如:<s:property value="#name1"/> 如果保存在作用域
那么就#作用域点 如:<s:property value="#session.name1"/> 其它不知道放在什么地方的可以用
#attr点 如:<s:property value="#attr.name1"/>
标签简单例子:
<!--1-->
<s:iterator value="#{'1':'男','0':'女'}" var="sex">
<s:property value="#sex.key"/>
<s:property value="#sex.value"/>
</s:iterator>
<!--2-->
<!-- 加#是map,不加是list -->
<s:iterator value="{'大中国','小日本','俄罗斯'}" var="country" status="ss">
<s:property value="#country"/>
<s:property value="#ss.count"/>
<s:property value="#ss.index"/>
</s:iterator>
<!--3-->
<%
int x = 5;
pageContext.setAttribute("x",x);
//ActionContext.getContext().getValueStack().push("yy");
%>
<!-- 判断一个数奇偶 -->
<s:if test="#attr.x%2==1">
奇数
</s:if>
<s:else>
偶数
</s:else>
<!--4-->
<!-- 追加 -->
<s:append var="list3">
<s:param value="{'a','b','c'}"></s:param>
<s:param value="{'1','2'}"></s:param>
</s:append>
<s:iterator value="#list3" var="ll">
${ll} <br>
</s:iterator>
<!--5-->
<!-- 合并 -->
<s:merge var="list3">
<s:param value="{'a','b','c'}"></s:param>
<s:param value="{'1','2'}"></s:param>
</s:merge>
<s:iterator value="#list3" var="ll">
${ll} <br>
</s:iterator>
<!--6-->
<!-- 把字符分隔数组,相当split -->
<s:generator separator=";" val="'吃;喝;玩'" var="list">
</s:generator>
<s:iterator value="#list" var="ll">
${ll } <br>
</s:iterator>
<s:debug></s:debug>
<!--7-->
<!-- 求子集合subset -->
<s:subset source="{'a','b','c','d','e','f','g'}" start="2" count="4">
<s:iterator>
<s:property/>
</s:iterator>
</s:subset>
<!--8-->
<!-- 实例化-->
<s:bean name="com.dao.StuDao" var="stuDao"></s:bean>
<!-- 调用方法并循环输出 -->
<s:iterator value="#stuDao.getAllStudent()" var="s">
<s:property value="#s.sid"/>
</s:iterator>
<s:debug></s:debug>
<!--9-->
<!-- 实例化-->
<s:bean name="com.dao.StuDao" var="stuDao"></s:bean>
<!-- 实例化客户排序对象 -->
<s:bean name="com.vo.MySort" var="mysort"></s:bean>
<!-- 排序 -->
<s:sort comparator="#mysort" source="#stuDao.getAllStudent()" >
<s:iterator var="s">
<s:property value="#s.sid"/>
</s:iterator>
</s:sort>
相关推荐
本笔记将深入探讨Struts2的核心概念、发展历程、使用方法以及与OGNL(Object-Graph Navigation Language)的结合应用。 **一、Struts2概述** 1.1 为什么要用Struts 在Java Web开发中,Struts2作为MVC框架,能够...
Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性、可扩展性良好的应用程序的工具。这份"struts2学习笔记和源码"资源是学习这个框架的理想材料,特别...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > ...以上内容覆盖了Struts2学习笔记的主要知识点,希望对您的学习有所帮助。
8. ** strut2显示图笔记**:这个笔记可能包含了Struts2架构的可视化表示,帮助理解各个组件之间的关系和工作流程,包括Action、Interceptor、Value Stack等的交互过程。 通过阅读这个HTML版的Struts2笔记,开发者...
”应用,通过配置Struts2的核心文件struts.xml来定义Action,然后在JSP页面上展示结果。 二、Struts2配置 配置是Struts2的基础,主要包括以下部分: 1. `struts-default.xml`:包含了Struts2的默认配置,提供了一些...
### Struts2培训笔记 #### 一、Struts2简介 **MVC框架**:Struts2是一个基于Java的企业级Web应用开发框架,遵循MVC(Model-View-Controller)设计模式。 - **M(Model)**:业务逻辑处理部分,通常指与数据库交互...
3. 创建一个新的Java Web工程,并将必要的jar包添加到工程中,这些包通常包括Struts2的核心库、XWork框架、OGNL(用于对象图导航)、FreeMarker(用于视图模板)、日志库(如Commons Logging)以及文件上传相关的...
Struts是Apache软件基金会旗下的一款开源Java框架,主要用于构建企业级Web应用程序。它基于Model-View-Controller(MVC)架构模式,旨在简化开发过程,提高代码的可维护性和可扩展性。Struts 1是早期版本,而Struts ...
在这个学习笔记和测试源代码中,我们将专注于Struts2中的OGNL(Object-Graph Navigation Language)表达式,这是一种强大的表达式语言,用于在Java对象图中导航和操作数据。 OGNL是Struts2框架的核心部分,它允许...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...