1、EL表达式
EL表达式的一般操作的四大作用域application、session、request、pagecontext(作用域由大到小)中的属性。el表达式操作不了局部变量。
EL实现变量类型的自动转换。
EL表达式必须以“${XXX}”来表示,其中"XXX"部分就是具体表达式内容
2、El表达式实例分析
${s},会自动按照pagecontext,request,session,application的顺序去找属性名为s的属性。
<%=((Person)request.getAttribute("qy")).getName2()%>--${qy.name2}
${requestScope.s}相当于:<%=request.getAttribute("s")%>
注意:EL表达式中的变量,都必需用setAttribute("a","AA")放在四大作用域里。
${empty a}如果a是null,空字符串或者空的集合就返回true,否则返回false。
${param a}相当于:<%=request.getParameter("a")%>
${paramValue.b[0]}相当于:<%=request.getParameterValues("b")[0]%>用于多个同名不同值参数的情况。
3、回顾了EL之后,我们来看一看struts2中的各种传值。
Action中的代码:
public String add(){
ActionContext ac = ActionContext.getContext();
ac.put("ddd", "789");
Map<String, Object> session =ac.getSession();
session.put("ccc", "123");
Map<String,Object> request =(Map<String, Object>) ac.get("request");
request.put("aaa", "456");
return "index";
}
Jsp中的body:
<body>
${requestScope.aaa } -- ${request.aaa } --${attr.aaa }--${aaa}
-- <s:property value="#request.aaa"/>
-- <s:property value="#attr.aaa"/>
<hr/>
${sessionScope.ccc }--${ccc }--${session.ccc } --${attr.ccc }
-- <s:property value="#session.ccc"/>
-- <s:property value="#attr.ccc"/>
<hr/>
${ddd }
</body>
结果:
由以上结果可看出struts2中放入“假”request的元素,可以有六种方法取出,session自然也有六种,但是我们一般只取最简单的${aaa}和${ccc},在ognl(即S标签中)非ValueStack中的内容,需要加"#"来标识,告诉ognl不要再根对象中寻找,而是在其他上下文对象中寻找相关值。
OGNL获得上下文中的属性
Action中的代码:
public String execute() throws Exception {
//增加测试代码
uname="老高";
user = new User("root","123456");
user.setAddr(new Address("中国","北京","海淀区"));
return "success"
}
Jsp中的代码:
<body>
<p><s:property value="uname" /></p>
<p><s:property value="user.addr.country" /></p>
<s:debug></s:debug> <!-- 我们可以通过debug标签查看ActionContext中的情况 -->
</body>
结果如下:
- 大小: 8.5 KB
- 大小: 2.3 KB
- 大小: 13.8 KB
分享到:
相关推荐
JSP与Servlet传值技术是Java Web开发中的一种重要技术,用于实现前台和后台之间的数据传递。该技术有多种实现方式,本文将对其进行总结和说明。 JSP到JSP的传值技术 JSP到JSP的传值技术主要有四种: 1. 超链接...
Struts2框架通过Action类来处理请求,Action中可以定义方法,这些方法在执行后返回一个结果,结果可以是一个具体的视图(如JSP页面)或者是一个表示JSON的字符串。Struts2的JSON插件可以轻松地启用这个功能,使得...
### JSP页面之间的传值详解 #### 一、引言 在Web开发中,数据的传递是一项基础且重要的任务。特别是在使用JSP技术时,如何有效地在不同的JSP页面或JSP与Servlet之间进行数据传输,是每个开发者都需要掌握的核心...
本文将详细介绍Struts2中几种常见的Action间传值方式,特别是`chain`和`redirectAction`两种方式的使用场景及限制。 #### 1. 使用`chain`进行Action间传值 `chain`结果类型允许将当前Action的结果转发到另一个...
JSP提供了多种向后台传递参数的方式,不同的场景和需求可以灵活选择。通过Form表单提交适用于需要用户交互的表单数据;隐藏域可以传递一些附加的、非用户可见的数据;URL传值简单直观,但不适合传输敏感数据;...
总结来看,AJAX的JSON传值方式在JSP页面中的应用,主要涉及到前端JavaScript的AJAX调用、数据处理,以及后端Java代码的数据查询和返回。通过这种模式,可以实现更加动态和交互性强的Web应用体验。开发者在设计和实现...
### Struts2 传值方式详解 在Struts2框架中,实现前后台的数据传递是构建Web应用的基础之一。本文将详细介绍三种常见的Struts2数据传递方式:通过默认的Action属性传递、使用Value Object(VO)传递以及利用...
SpringMVC是Spring框架的一个模块,专门用于处理Web应用程序的请求和响应。它允许开发者通过注解轻松地实现模型-视图-控制器(MVC)模式,从而将业务逻辑与用户界面分离。本文将详细介绍在SpringMVC注解版中,如何从...
Struts2.5框架结合Ajax和JSON技术,可以实现在不刷新整个页面的情况下,仅更新JSP页面的部分内容,从而提高用户体验。以下是实现这一功能的详细步骤和知识点: 1. **Ajax简介**: - AJAX(Asynchronous JavaScript...
1. **Action方法创建和填充list**:在后台的Action类中,我们需要创建一个list对象,然后填充数据。例如,假设我们有一个`User`类,我们可能会创建一个`List<User>`来存储用户信息: ```java public class ...
1. 栈顶对象:在程序执行过程中,由容器自动创建并存储到值栈中,该对象仅在Action使用模型驱动方式传值时被用到。 2. Action对象:每个Action请求到来时,容器会创建一个Action对象并存入值栈,该对象携带所有与...
功能齐全,有后台管理添加投票,删除,修改等,用到一些基本的session,(可以方便的进行一次性添加,删除再来更新)和javascrpit代码。前台可根据后台所选择的主题来显示,以及进行投票,欢迎初学者学习。 详细说明...
<form id="queryForm" method="get" action="()%>/bjtf/ctpf/demo/MyJsp2.jsp" style="margin-bottom:2px;"> ;"> ;"> <!-- 表单字段 --> <td width="15%"><label for="cname">名称:</label></td> ...
- `不实用structs标签向jsp页面传值.txt`:在某些情况下,开发者可能选择不使用Struts2标签,而是直接通过EL(Expression Language)或JSTL(JavaServer Pages Standard Tag Library)来传递和显示数据。...