导航:首页 > 编程语言 > jsp指令使用ognl表达式

jsp指令使用ognl表达式

发布时间:2024-07-16 15:08:30

1. ognl和el表达式的区别

ognl和el表达式的区别
el 和ognl都是表达是语言,但语法是不一样的,所谓表达式语言,就是输入一串表达式,解释器帮你求值。jstl是一套标签库,说白了是一套可以用在jsp页面的标签。jstl和el都属于jsr的一部分。ognl则是社区一套表达式语言,最初用于webwork。
这段就是带参数的url 相当于 hello action的URL后面加上 ?userName=Bruce+Phillips${helloLink}是EL表达式 <s:url action="hello" var="helloLink">
<s:param name="userName">Bruce Phillips</s:param>
</s:url>

实际上这段的意思是将带参数的url字符串放到request属性中,再通过EL把它取出来${helloLink}可以换成${requestScope.helloLink}

2. Struts2 2.5 用ognl表达式从action里面取值,显示在jsp页面,为什么不能根据性别取出对象呢看下图

struts2中使用的OGNL表达式在拿action中的值的时候无论如何都取不到。

UserAction.java 这个类查出了一个“lists”,也就是我在jsp页面中要取的值。

[java]view plain

3. jsp里面有个很像EL表达式的#{ },是什么表达式

OGNL表达式
构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
支持容器的构造的表达式:
例如:{"green", "red", "blue"}构造一个List,专#{"key1" : "value1", "key2" : "value2", "key3" : "value3"}构造一个Map
OGNL是Object-Graph Navigation Language的缩属写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。

4. jsp中如何生成HTML中的标签啊比如,我想写个for循环,在页面上生成N个<td>...</td>的单元

通过<%%>内写入抄java代码即可实现,袭不过真正开发一般不这样做,要使用EL或OGNL表达式<table> <tr> <%for(int i = 0; i < n; i++){ %> <td> </td> <% } %> </tr>
</table></p></p>

5. struts2 jsp如何获取action值

现在jsp页面头部引入struts2标签库
<%@ taglib prefix="s" uri="/struts-tags"%>

然后再需要的地方使用
<s:property value="OGNL表达式"/>

每次请求action转发回来后,当回前页答面会有一个
valueStack,action里的全部信息都保存在里面,比如你action里有个字段username(提供的有get方法)
则你在<s:property value="username"/>就能直接取到值。
如果是对象ognl还可以支持导航<s:property value="user.username"/>
依次类推。

同时当前页面还保存的有ActionContext(不知道怎么翻译...),跟valueStack一样,也可以直接取值,但是前面要加个#号以区别。
request、application对象都在actionContext里面,
可以这么取requst里的值
<s:property value="#request.username"/>等

6. jsp页面根据数据库里查询的值,显示不同的div。

您好,很高兴为您解答,首先请你提供您所使用的框架技术,包括哪些,如果没有使用框架,我给你提供最简单原始的如下思路:

拿简单的 servlet 来说:

当在页面做 input 提交时,用户名已经被提交到后台,当然,我们的目的是获取work_order值,接下来控制页面转发回你提交的 jsp,记住转发与重定向的区别,这里我不做过多阐述,接下来就是jsp 页面的操作了,您可以使用脚本语言<%...%>,亦可以使用 jstl 表达式,当然,如果使用了 struts2框架等,ognl 表达式是一个完美的选择,提供的具体思路如下:

<jstl:if test="${requestScope.work_order}==a">显示 a div</if> <jstl:elseif test="${requestScope.work_order}==b">显示 b div</elseif> <jstl:else test="${requestScope.work_order}==a">显示 a div</else>

当然${requestScope.work_order}表示从 request 范围中请求work_order参数,就是你查询出来的

阅读全文

与jsp指令使用ognl表达式相关的资料

热点内容
快图浏览quickpiciphone 浏览:847
app线稿图需要哪些要求 浏览:752
java只能输入汉字 浏览:630
java定义char 浏览:133
excel2007插入压缩文件 浏览:70
怎么设定自己公司的网站 浏览:324
如何在办公软件上直接复制文件 浏览:939
c语言程序设计矩阵运算 浏览:894
影响网络质量因素有哪些 浏览:587
最新win10秘钥在线激活 浏览:192
cad导入su8文件无法使用 浏览:828
怎么做编程入门 浏览:851
用织梦建手机网站 浏览:38
灌南数控编程怎么学 浏览:957
系统apk图标修改工具 浏览:121
苹果6手机网络没信号怎么回事啊 浏览:378
手机扫描文件转换成word 浏览:636
手机本地视频的文件夹在哪里 浏览:908
苹果11无法安装app找不到描述文件 浏览:363
咋新建cad文件 浏览:969

友情链接