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

热点内容
国务院通信大数据行程卡在哪里 浏览:581
打印机和电脑数据线连好怎么操作 浏览:877
iphone打开html文件 浏览:63
java操作excel之poi 浏览:700
java集合同步 浏览:861
软工大数据软考考什么 浏览:190
受控体系文件的封面有什么内容 浏览:778
梦幻锦衣是哪个文件夹 浏览:811
raid模式不能黑苹果 浏览:859
如何优化网站推广方案 浏览:40
编程怎么入门去极客时间 浏览:504
查看oracle数据库字符集编码 浏览:658
pscc恢复文件 浏览:245
钉钉怎么上网络直播课 浏览:595
怎么用手机qq扫描文件在哪里 浏览:17
微信瓶子怎么提示用完了 浏览:288
步步高文件保密柜在哪个文件夹 浏览:562
电信营业厅app怎么查询uk码 浏览:282
ls可编程控制器如何使用 浏览:388
扩展名为的文件是视频文件 浏览:761

友情链接