导航:首页 > 编程语言 > 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表达式相关的资料

热点内容
看直播数据用哪个平台最好 浏览:730
win10芯片驱动程序版本 浏览:763
如何给word添加公式编辑器 浏览:666
iphone桌面文件夹怎样合并 浏览:919
要我苹果账号密码忘记了怎么办 浏览:578
快快卡在配置游戏文件 浏览:393
数据包重发时间怎么调整 浏览:882
youtubeapp怎么下载 浏览:366
编程检测是什么 浏览:753
网络摄像机的传输距离 浏览:941
超值猫qq群购秒杀群 浏览:138
pdf文件能备注吗 浏览:174
html可视化数据源码在哪里 浏览:387
adobereader专用卸载工具 浏览:28
vivo手机数据如何备份 浏览:888
ithmb文件转换器 浏览:66
看病找什么网站好 浏览:579
linux如何查看文件系统 浏览:581
linux统计点频率 浏览:627
全民泡泡大战安琪儿升级 浏览:620

友情链接